2.pandas數(shù)據(jù)讀寫

嘗試本節(jié)代碼之前,必須成功安裝pandas。
常見的數(shù)據(jù)來源,有TXT格式(例:空格分隔)、Excel格式、數(shù)據(jù)庫表格(例:mysql數(shù)據(jù)庫表格)、以及數(shù)組(list)和字典(dict)格式數(shù)據(jù)。

0 數(shù)據(jù)格式

嘗試時(shí),請(qǐng)先將下表另存為相應(yīng)的數(shù)據(jù)格式。

倉庫 倉庫ID SKU 狀態(tài) 批次 效期 批號(hào) 發(fā)貨數(shù) 收貨數(shù)
備貨倉 7 102001 1 YQ1HMC 2019-08-16 20190816 11 11
華東倉(原零售倉) 5 102001 1 YQ1HMC 2019-08-16 20190816 5 5
備貨倉 7 102001 3 YQ1HMC 2019-08-16 20190816 1 1
華東倉(原零售倉) 5 102002 1 YQ1HMB 2019-08-15 20190815 6 6
華東倉(原零售倉) 5 102005 1 YQ1HMB 2019-08-16 20190816 10 10
備貨倉 7 102101 3 CSQA002 2018-01-30 20180130 1 1
華東倉(原零售倉) 5 102104 1 CSRF001 2019-07-05 20190705 6 6
備貨倉 7 102104 3 dfhg 2019-07-05 20190705 1 1
華東倉(原零售倉) 5 102105 1 CSRE001 2019-05-24 20190524 2 2
備貨倉 7 102105 3 0411A 2019-05-24 20190524 1 1
華東倉(原零售倉) 5 102111 1 CSRF001 2019-07-05 20190705 2 2
華東倉(原零售倉) 5 102111 1 fh22 2019-07-05 20190705 1 1
備貨倉 7 102111 3 dg0h52 2019-05-02 20190502 1 1
備貨倉 7 102113 3 CSRF002 2019-07-05 20190705 1 1
華東倉(原零售倉) 5 102114 1 A 2019-06-18 20190618 1 1
備貨倉 7 102114 3 fh02 2019-06-18 20190618 1 1
華東倉(原零售倉) 5 102115 1 2019-07-04 20190704 1 1
備貨倉 7 102116 1 YQ2FMA 2019-06-06 20190606 6 6
華東倉(原零售倉) 5 102116 1 YQ2FMA 2019-06-06 20190606 7 7

1 TXT格式數(shù)據(jù)的讀?。ù颂幨褂每崭駷榉指舴?/h1>

此處需留意TXT文件的編碼格式。如不是UTF-8格式,而是GBK格式,須在open函數(shù)中做相應(yīng)調(diào)整。

import pandas as pd
with open('G:/test/2.pandas數(shù)據(jù)讀取 TXT格式.txt', 'r', encoding='UTF-8') as f:
  table = pd.read_table(f, sep=' ', index_col=0, header=None, names=['倉庫','倉庫編號(hào)','SKU','狀態(tài)','批次','有效日期','批號(hào)','發(fā)貨數(shù)量','收貨數(shù)量'],lineterminator='\n')

TXT格式

2 Excel格式數(shù)據(jù)的讀取和寫入

下述是常用方法,其中names參數(shù)用于重命名。但pandas讀取Excel數(shù)據(jù)的方法,貌似不可以根據(jù)Excel的名稱管理器讀取數(shù)據(jù),而是讀取某sheet的全部數(shù)據(jù)。

import pandas as pd
table = pd.read_excel('G:/test/2.pandas數(shù)據(jù)讀取 Excel格式.xlsx', sheetname='Sheet1', names=['倉庫','倉庫編號(hào)','SKU','狀態(tài)','批次','有效日期','批號(hào)','發(fā)貨數(shù)量','收貨數(shù)量'])

writer = pd.ExcelWriter("test.xlsx")
for sheet in ['sheet1']:
  table.to_excel(writer, sheet_name=sheet)
writer.save()

Excel格式

3 數(shù)據(jù)庫表格數(shù)據(jù)的讀取

此處使用mysql做演示

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("mysql+mysqldb://username:password@server_ip:server_port/database_name?charset=utf8")
table = pd.read_sql_query(con=engine,sql="SELECT `倉庫`,`倉庫編號(hào)`,`SKU`,`狀態(tài)`,`批次`,`有效日期`,`批號(hào)`,`發(fā)貨數(shù)量`,`收貨數(shù)量` FROM demo_inv")

4 數(shù)組(list)和字典(dict)格式數(shù)據(jù)的讀取

數(shù)組可輕松轉(zhuǎn)成DateFrame格式,但json格式的數(shù)據(jù),由于其結(jié)構(gòu)復(fù)雜度,不是很容易轉(zhuǎn)化。比較合適的方式,是先將字典轉(zhuǎn)成數(shù)組,然后再轉(zhuǎn)成DateFrame格式,此處不做展示

import pandas as pd
table = pd.DataFrame([["備貨倉","7","102001","1","YQ1HMC","2019-08-16","20190816","11","11"],["華東倉(原零售倉)","5","102001","1","YQ1HMC","2019-08-16","20190816","5","5"]],columns=['倉庫','倉庫編號(hào)','SKU','狀態(tài)','批次','有效日期','批號(hào)','發(fā)貨數(shù)量','收貨數(shù)量'])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容