【发布时间】:2017-09-21 12:19:15
【问题描述】:
我正在尝试获取它,以便当我遍历一个东西列表时,我可以将某个日期从每个仓库收到的数量添加到数据框中。
当我尝试以下方法时它不起作用:
if inv['prod'] not in self.inventory.columns:
## add row in
self.inventory[inv['prod']] = 0
idx = inv['time_stamp'].split(' ')[0]
if idx not in self.inventory.index:
self.inventory[idx, :] = 0
self.inventory[idx, inv['prod']] += inv['qty']
我基本上需要它来添加基于每个产品的列,然后是它的到达/销售日期。我知道这不是很pythonic,但只是假设我不提前知道日期或产品。
数据框最终将如下所示:
Date InventoryA InventoryB
2017-01-01 10 NaN
2017-01-02 NaN NaN
2017-01-03 NaN 5
2017-01-04 NaN 5
2017-01-05 -5 NaN
2017-01-06 NaN -10
2017-01-07 15 NaN
2017-01-08 NaN NaN
2017-01-09 -20 NaN
【问题讨论】:
-
你有一些测试数据,比如
inv是什么?我猜想有一种比循环更简单的方法可以转换为数据帧。 -
理解你的数据结构非常混乱。
-
@ken syme 没有更简单的方法来转换数据帧,因为我没有总数据帧,我会收到单独的消息;这就是为什么我在问题中说我们必须这样循环
-
@bpython 你能举一个你得到的
inv“消息”的例子吗? -
['InventoryA', 10]
标签: python pandas dataframe insert