Group by a column and return multiple aggregates as a dataframe
我有一个有多列的csv。
例如,这里是标题和文件的前两行:
1 2 3 | ACC;SYM;SumRealPNL;Count;MinAVG;PerLotPNL;SumOneLotPNL;ProfitOnly;ProfitOnlyCount;ProfitOnlyMinAVG;LossOnly;LossOnlyCount;LossOnlyMinAVG;Period;-;P;Q;R;S;Total;U;AS;W;YEAH;Y 31942;EURUSD;4.593,00;17;730;336,47;5.720,00;5.720,00;17;730;0,00;0;0;4;;1;2;0;1;4;A;31942EURUSD1;12;16;18 34887;XAUUSD;16.150,00;7;276;588,43;4.119,00;4.119,00;7;276;0,00;0;0;4;;1;2;0;1;4;A;34887XAUUSD1;12;16;18 |
我将csv文件加载到数据帧:
1 | df = pd.read_csv('aaaa.csv', header=0, sep=';') |
我按AS列对数据帧进行了分组:
1 | byAS = df.groupby('AS') |
现在我想使用DataFrameGroupBy对象(byAS)创建一个包含以下列的新数据框:
- AS专栏
- ACC列的第一个值
- U列的第一个值
- PerLotPNL列的平均值
- SumOneLotPNL列的总和
- Y列的总和
我怎样才能做到这一点?
在您的帖子中已经有
1 2 3 4 5 6 7 | byAS = df.groupby('AS') result = byAS.agg({'ACC': 'first', 'U': 'first', 'PerLotPNL': np.mean, 'SumOneLotPNL': np.sum, 'Y': np.sum}).reset_index(inplace=True) |