我有一些看起来像这样的数据;
data.head()
stock date binNum volume
0 stock0 d120 2 249500.0
1 stock0 d120 3 81500.0
2 stock0 d120 4 79000.0
3 stock0 d120 5 244000.0
4 stock0 d120 6 175000.0
我可以使用以下代码获得特定股票在所有日子里每个箱子的平均交易量;
stock0 = data[(data['stock'] == 'stock0')]
binGroups = stock0[['binNum', 'volume']].groupby('binNum', sort=False)
stock0vol = binGroups.aggregate({'volume': np.mean}).reset_index()
stock0vol.head()
binNum volume
0 2 174095.238095
1 3 100428.571429
2 4 79880.952381
3 5 73642.857143
4 6 69761.904762
我想将此应用于所有股票。结果将是一个包含股票列但没有日期列的表(因为它是所有日期的聚合)。像这样的东西;
stock binNum volume
0 stock0 2 174095.238095
1 stock0 3 100428.571429
2 stock0 4 79880.952381
3 stock0 5 73642.857143
4 stock0 6 69761.904762
我可以通过将上面的代码放在一个循环中并逐个连接行来做到这一点,但我相信有一种更优雅的方法可以通过分组和聚合来做到这一点。任何人都可以阐明一下吗?