Pandas按列分组而不使用多重索引

2 投票
1 回答
1145 浏览
提问于 2025-04-18 00:40

我有一个数据表,里面记录了一个月内火车站的数据,其中有三个索引:车站、日期和小时。数据可能长这样:

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()

撰写回答