Python 在数据帧中聚合值和总计
以下是我试图做的,熊猫数据框中的样本数据表示df为:Python 在数据帧中聚合值和总计,python,pandas,dataframe,group-by,aggregate,Python,Pandas,Dataframe,Group By,Aggregate,以下是我试图做的,熊猫数据框中的样本数据表示df为: ID Date Amount A 5/11/16 5 B 12/10/16 27 B 13/10/16 45 B 14/10/16 2 A 5/12/16 89 C 28/1/16 34 D 29/8/16 12 D 20/5/16 12 C 2/1/17 90 对于每个ID,我需要列表中日期(天数)的差异、另一个列表中的金额
ID Date Amount
A 5/11/16 5
B 12/10/16 27
B 13/10/16 45
B 14/10/16 2
A 5/12/16 89
C 28/1/16 34
D 29/8/16 12
D 20/5/16 12
C 2/1/17 90
对于每个ID,我需要列表中日期(天数)的差异、另一个列表中的金额、最终列表中金额的总和
输出应为:
A [30] [5,89] [94]
B [01,01] [27,45,2] [74]..
我试图通过以下方式对数据进行分组:
df=df.groupby('ID')['Amount'].apply(列表)
这给了我列表中按ID和金额分组的数据,但我无法计算如何获得不同的日期。您可以按ID分组,然后执行一些聚合
df.Date = pd.to_datetime(df.Date, format='%d/%m/%y') # convert to a date column
df = df.groupby('ID').agg({'Date' : lambda x: x.diff().dropna().dt.days, \
'Amount' : [lambda y: y.values.tolist(), 'sum']})
df.columns = ['Diff', 'Amount', 'Total']
df
Diff Amount Total
ID
A 30 [5, 89] 94
B [1, 1] [27, 45, 2] 74
C 340 [34, 90] 124
D -101 [12, 12] 24
你的问题是什么?你试了什么?什么不起作用?现在更新。。。。