以下代码将根据索引更新库存中的项目数。旧股票持有的表dr>;1000个值。更新后的数据框grp1包含已售出商品的数量。我想从数据帧dr中减去数据帧grp1并更新dr。在我想用Panda的join和fillna将grp1连接到dr之前,一切都很好。首先,数据类型从int变为float,不仅NaN值,notnull值也被0替换。这是索引不匹配的问题吗
我试图使数据类型统一,但这没有改变任何事情。在连接两个数据帧时删除fillna会为所有列返回NaN
dr has the following format (example):
druck_pseudonym lager_nr menge_im_lager
80009359 62808 1
80009360 62809 10
80009095 62810 0
80009364 62811 11
80009365 62812 10
80008572 62814 10
80009072 62816 18
80009064 62817 13
80009061 62818 2
80008725 62819 3
80008940 62820 12
dr.dtypes
lager_nr int64
menge_im_lager int64
dtype: object
and grp1 (example):
LagerArtikelNummer1 ArtMengen1
880211066 1
80211070 1
80211072 2
80211073 2
80211082 2
80211087 4
80211091 1
80211107 2
88889272 1
88889396 1
ArtMengen1 int64
dtype: object
#update list with "nicht_erledigt"
dr_update = dr.join(grp1).fillna(0)
dr_update["menge_im_lager"] = dr_update["menge_im_lager"] - dr_update["ArtMengen1"]
这将返回:
lager_nr menge_im_lager ArtMengen1
druck_pseudonym
80009185 44402 26.0 0.0
80009184 44403 2.0 0.0
80009182 44405 16.0 0.0
80008894 44406 32.0 0.0
80008115 44407 3.0 0.0
80008974 44409 16.0 0.0
80008380 44411 4.0 0.0
dr_update.dtypes
lager_nr int64
menge_im_lager float64
ArtMengen1 float64
dtype: object
在注释后编辑,索引是对象。
索引是字符串对象。你需要把它们转换成数字。使用
那就试试剩下的
您可以过滤旧的stock“dr”数据帧以匹配售出的stock,然后减去,并分配回原始过滤的数据帧
如果我理解正确,首先您希望非匹配索引位于最终数据集中,并且希望最终数据集中是整数。可以对数据集使用'outer'联接和astype int。 因此,在连接处,您可以这样做:
相关问题 更多 >
编程相关推荐