Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据帧中聚合值和总计_Python_Pandas_Dataframe_Group By_Aggregate - Fatal编程技术网

Python 在数据帧中聚合值和总计

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,我需要列表中日期(天数)的差异、另一个列表中的金额

以下是我试图做的,熊猫数据框中的样本数据表示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,我需要列表中日期(天数)的差异、另一个列表中的金额、最终列表中金额的总和

输出应为:

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

你的问题是什么?你试了什么?什么不起作用?现在更新。。。。