尝试本节代码之前,必须成功安装pandas。
常见的数据来源,有TXT格式(例:空格分隔)、Excel格式、数据库表格(例:mysql数据库表格)、以及数组(list)和字典(dict)格式数据。
0 数据格式
尝试时,请先将下表另存为相应的数据格式。
仓库 | 仓库ID | SKU | 状态 | 批次 | 效期 | 批号 | 发货数 | 收货数 |
---|---|---|---|---|---|---|---|---|
备货仓 | 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格式数据的读取(此处使用空格为分隔符)
此处需留意TXT文件的编码格式。如不是UTF-8格式,而是GBK格式,须在open函数中做相应调整。
import pandas as pd
with open('G:/test/2.pandas数据读取 TXT格式.txt', 'r', encoding='UTF-8') as f:
table = pd.read_table(f, sep=' ', index_col=0, header=None, names=['仓库','仓库编号','SKU','状态','批次','有效日期','批号','发货数量','收货数量'],lineterminator='\n')
2 Excel格式数据的读取
下述是常用方法,其中names参数用于重命名。但pandas读取Excel数据的方法,貌似不可以根据Excel的名称管理器读取数据,而是读取某sheet的全部数据。
import pandas as pd
table = pd.read_excel('G:/test/2.pandas数据读取 Excel格式.xlsx', sheetname='Sheet1', names=['仓库','仓库编号','SKU','状态','批次','有效日期','批号','发货数量','收货数量'])
3 数据库表格数据的读取
此处使用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 `仓库`,`仓库编号`,`SKU`,`状态`,`批次`,`有效日期`,`批号`,`发货数量`,`收货数量` FROM demo_inv")
4 数组(list)和字典(dict)格式数据的读取
数组可轻松转成DateFrame格式,但json格式的数据,由于其结构复杂度,不是很容易转化。比较合适的方式,是先将字典转成数组,然后再转成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=['仓库','仓库编号','SKU','状态','批次','有效日期','批号','发货数量','收货数量'])