熊猫数据框的特殊过滤/分组

时间:2020-03-31 18:58:26

标签: python pandas dataframe group-by

我试图按2列对pandas Dataframe进行分组,然后根据最新日期对另一列进行分组,并通过对另一列中的值求和来结束。

以下是我要执行的操作的示例:

     CODE     BILL_NUM   AMOUNT    DATE
1    1232      320220      $5    01/16/20 
2    1232      320320      $5    01/19/20
3    1232      320220     -$1    01/20/20
4    1216      160120      $4    01/04/20
5    1216      160120      $4    02/07/20
6    1216      160220      $2    02/08/20
7    1216      160120     -$3    02/19/20

所需的分组/过滤后将返回:

     CODE     BILL_NUM   AMOUNT    DATE
1    1232      320220      $4    01/20/20 
2    1232      320320      $5    01/19/20
3    1216      160120      $5    02/19/20
4    1216      160220      $2    02/08/20

1 个答案:

答案 0 :(得分:0)

我生成的数据框; df1

enter image description here

在$ AMOUNT列中放入$,括号并引入-

df1['AMOUNT'] = df1['AMOUNT'].str.replace('(', '-')
df1['AMOUNT'] = df1['AMOUNT'].str.replace(')', '')
df1['AMOUNT'] = df1['AMOUNT'].str.replace('$', '')
df1['AMOUNT'] = df1['AMOUNT'].astype(int)
df1

强制DATE到datetime

df1['DATE']=pd.to_datetime(df1['DATE'])

分组并汇总到多个列

df1.groupby(['CODE','BILL_NUM']).agg({'DATE':'max','AMOUNT':'sum'}).reset_index()

输出

enter image description here

相关问题