【发布时间】:2019-03-07 19:45:04
【问题描述】:
我对 python 和 pandas 非常陌生,正在处理看起来像的 pandas 数据框
Date Time ID Weight
Jul-1 12:00 A 10
Jul-1 12:00 B 20
Jul-1 12:00 C 100
Jul-1 12:10 C 100
Jul-1 12:10 D 30
Jul-1 12:20 C 100
Jul-1 12:20 D 30
Jul-1 12:30 A 10
Jul-1 12:40 E 40
Jul-1 12:50 F 50
Jul-1 1:00 A 40
我正在尝试按日期、时间和 id 分组并应用累积总和,这样如果 id 存在于下一个时隙中,则权重仅添加一次(唯一)。生成的数据框如下所示
Date Time Weight
Jul-1 12:00 130 (10+20+100)
Jul-1 12:10 160 (10+20+100+30)
Jul-1 12:20 160 (10+20+100+30)
Jul-1 12:30 160 (10+20+100+30)
Jul-1 12:40 200 (10+20+100+30+40)
Jul-1 12:50 250 (10+20+100+30+40+50)
Jul-1 01:00 250 (10+20+100+30+40+50)
这是我在下面尝试过的,但这仍然是多次计算权重:
df=df.groupby(['date','time','ID'])['Wt'].apply(lambda x: x.unique().sum()).reset_index()
df['cumWt']=df['Wt'].cumsum()
任何帮助将不胜感激!
提前非常感谢!!
【问题讨论】:
-
检查 groupby 和 agg
标签: python pandas data-processing