我有一个按2列分组的数据框 - 日期和客户端,我总结了这样的数量:
new_df = df.groupby(['Date',Client'])
现在我得到以下df:
Sum
Date Client
1/1 A 0.8
B 0.2
1/2 A 0.1
B 0.9
我希望能够发现这样一个事实,即0.8到0.2的比率之间的波动很大,变为0.1到0.9。最有效的方法是什么?我尝试
时也无法访问日期和客户端字段new_df[['Date','Client']]
为什么?
答案 0 :(得分:1)
IIUC您可以使用pct_change
或diff
:
new_df = df.groupby(['Date','Client'], as_index=False).sum()
print (new_df)
Date Client Sum
0 1/1 A 0.8
1 1/1 B 0.2
2 1/2 A 0.1
3 1/2 B 0.9
new_df['pct_change'] = new_df.groupby('Date')['Sum'].pct_change()
new_df['diff'] = new_df.groupby('Date')['Sum'].diff()
print (new_df)
Date Client Sum pct_change diff
0 1/1 A 0.8 NaN NaN
1 1/1 B 0.2 -0.75 -0.6
2 1/2 A 0.1 NaN NaN
3 1/2 B 0.9 8.00 0.8