1 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個贊
我認(rèn)為您需要agg使用函數(shù)進(jìn)行聚合first,sum并且mean:
因?yàn)?columnDaily.Return是由列表中定義的多個函數(shù)聚合的,所以MultiIndex在輸出中獲取。因此有必要將其展平 - 最簡單的是map與join.
df = df.groupby('Dates').agg({'Last.Price':'first', 'Daily.Return':['mean','sum']})
print (df)
Last.Price Daily.Return
first mean sum
Dates
2018-11-23 75.18 -0.013844 -0.027689
2018-11-26 77.84 -0.013583 -0.027167
2018-11-27 79.50 0.010044 0.020087
2018-11-28 80.27 -0.009686 -0.009686
2018-11-29 80.00 0.003364 0.003364
print (df.columns)
MultiIndex(levels=[['Last.Price', 'Daily.Return'], ['first', 'mean', 'sum']],
labels=[[0, 1, 1], [0, 1, 2]])
df.columns = df.columns.map('_'.join)
print (df)
Last.Price_first Daily.Return_mean Daily.Return_sum
Dates
2018-11-23 75.18 -0.013844 -0.027689
2018-11-26 77.84 -0.013583 -0.027167
2018-11-27 79.50 0.010044 0.020087
2018-11-28 80.27 -0.009686 -0.009686
2018-11-29 80.00 0.003364 0.003364
最后一rename欄:
d = {'Last.Price_first':'Last.Price',
'Daily.Return_sum': 'Cum.Return',
'Daily.Return_mean': 'Average.Return'}
df = df.rename(columns=d)
print (df)
Last.Price Average.Return Cum.Return
Dates
2018-11-23 75.18 -0.013844 -0.027689
2018-11-26 77.84 -0.013583 -0.027167
2018-11-27 79.50 0.010044 0.020087
2018-11-28 80.27 -0.009686 -0.009686
2018-11-29 80.00 0.003364 0.003364
添加回答
舉報