问题遇到的现象和发生背景
背景:想制作一个有关于库存计算的小程序,目的是读取csv文件中生成的产品的名称,数目(由于生成的csv文件有一定限制条件,所以会有NAN数据产生,进行了数据清晰),然后在excel库存文件中找到相应的产品,并进行库存的减去,后期目的想达到库存量过少会提示信息的方向。
现象:目前已经可以读取CSV文件数据,并且转为了Datafram格式,也读取了Excel文件转为了Datafram格式,由于自己是第一次使用Pandas进行程序编写,所以现在不知道该如何进行读取CSV文件的数据与Excel中的数据进行比对及进行库存计算。
为了练习Pandas,所以本次只想使用Pandas进行编程。
查询了很多网页,还是没有找到自己想要的。
问题相关代码,请勿粘贴截图
data_dao=[]
col=11
for i in range(15):
df= pd.read_csv('刀具出库申请数据.csv',usecols=[col,col+1],encoding='gbk')
dao= pd.DataFrame(df)
dao.columns={"刀具型号","数量"}
data_dao.append(dao)
col += 4
for i in range(14):
data_dao[0] = pd.concat([data_dao[0],data_dao[i+1]])
data_dao[0]=data_dao[0].set_index('刀具型号')
data_dao[0]=data_dao[0].dropna()
data_dao[0].sort_index(inplace=True)
print(data_dao[0],type(data_dao[0]))
df1=pd.read_excel('TOOLSTOCK.xlsx',usecols=[1,2])
df1=df1.set_index('商品名称')
print(df1,type(df1))
data_dao[0]['刀具型号']='a'
data_dao[0]['数量']='b'
df1['商品名称']='c'
df1['盘点数量']='d'
运行结果及报错内容
数量
刀具型号
GM-2B-R3.0 1
GM-2BP-R0.3-M08 1
GM-2BP-R1-M10 1
GM-2BP-R1-M12 1
GM-2BP-R1.5-M12 1
GM-2BP-R2-M16 1
GM-2EP-D1-M06 1
GM-2EP-D2-M06 2
GM-2EP-D3-M16 1
GM-4E-D12 1
GM-4E-D8 1<class 'pandas.core.frame.DataFrame'>
盘点数量
商品名称
GM-2EP-D0.5-M06 15
GM-2EP-D0.5-M04 18
GM-2EP-D0.5-M08 13
GM-2EP-D0.8-M04 8
GM-2EP-D0.8-M06 20
GM-2BP-R0.4-M04 47
GM-2BP-R1-M08 45
GM-2EP-D2.0-M14 12
GM-2EP-D3-M08 12
GM-2EP-D3-M18 16
[272 rows x 1 columns] <class 'pandas.core.frame.DataFrame'>
我的解答思路和尝试过的方法
解答思路:
想从第一个Datafram中遍历每一行,与后面的excel的Datafram比对,然后进行数据写入
尝试过方法:
尝试了很多方法,总是取不出来值
我想要达到的结果
可以将CSV文件中提出的数据与Excel的数据进行比对,对数量进行减法处理