Python中数据帧中的值聚合?
我有DataFrame,合同如下:Python中数据帧中的值聚合?,python,pandas,dataframe,Python,Pandas,Dataframe,我有DataFrame,合同如下: df = pd.DataFrame ({"ID" : ["1", "2", "1", "2"], "currency" : ["USD", "USD", "EUR", "CHF"],
df = pd.DataFrame ({"ID" : ["1", "2", "1", "2"],
"currency" : ["USD", "USD", "EUR", "CHF"],
"amount" : [100, 200, 400, 500]})
我需要计算:
col1采用欧元货币的合同数量
col2非欧元货币的合同数量
col3欧元合同金额
4/col4非欧元货币的合同金额
为了更精确,我需要如下所示的数据帧:
用于新列lambda用于处理在使用聚合总和分配之前计数的新列:
cols = ['col1','col2','col3','col4']
df = (df.assign(col1 = df.currency == 'EUR',
col2 = df.currency != 'EUR',
col3 = lambda x: df.amount.mask(x.col2, 0),
col4 = lambda x: df.amount.mask(x.col1, 0))
.groupby(df['ID'])[cols]
.sum()
.reset_index())
print (df)
ID col1 col2 col3 col4
0 1 1 1 400 100
1 2 0 2 0 700