Pandas按列分组而不使用多重索引
我有一个数据表,里面记录了一个月内火车站的数据,其中有三个索引:车站、日期和小时。数据可能长这样:
Station Date Hour Passengers
Berlin HBF 2012-12-24 12:00 1000
Berlin HBF 2012-12-24 13:00 2000
Berlin HBF 2012-12-24 14:00 1000
Berlin HBF 2012-12-24 15:00 1000
....
Stuttgart 2012-12-24 12:00 500
因为我只关心一个车站在一个月内的总和,所以我想按照车站、日期和小时来分组,这样最后的结果应该是这个样子的:
Station Passengers
Berlin HBF 4000
....
Stuttgart 500
但是我没办法用pandas做到这一点,我试过这样做:
byStation = traindata.groupby(['Station', 'Date', 'Hour']).agg(np.sum())
可是这只返回了一个多重索引,里面有很多行...
1 个回答
2
看起来你想要根据“车站”来分组,然后对“乘客”这一列进行求和。这里其实不需要使用多重索引。你的解决方案会创建一个多重索引,但因为它和你原始数据的索引是一样的,所以其实没什么用。
这个方法应该可以用:
traindata.groupby("Station").Passengers.sum()