我试图按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
答案 0 :(得分:0)
我生成的数据框; df1
在$ 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()
输出