按行驶距离和车辆模式对数据框进行分组-熊猫

时间:2019-05-17 19:33:26

标签: pandas dataframe

我有一个要清除的“ travel_by_mode”数据帧。

基本上,我想按“ hhid”列中显示的每个家庭ID的车辆模式显示总行驶距离。我的数据框如下:

travel_by_mode = pd.DataFrame({'hhid': [1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5], 'mode': ['Dala-Dala', 'Walk', 'BRT', 'Dala-Dala', 'Private Vehicle', 'Dala-Dala', 'Walk', 'Private Vehicle', 'Dala-Dala', 'Walk', 'BRT'],  'length_in_km': [4,5,6,7,8,7,6,7,8,9,10]})

print(travel_by_mode)

我想创建一个新的数据框,该数据框将按hhid显示每种模式的总行驶距离。

因此,对于第一个家庭,它看起来像这样:

travel_by_mode2 = pd.DataFrame({'hhid': 1, 'distance_dala': 4, 'distance_walk': 4, 'distance_brt': 6,'distance_private_vehicle': 0})

print(travel_by_mode2)

最后,我希望有一个新的数据框,它可以显示每种车辆模式的总行驶距离。

帮助?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找pivot_table

In [11]: travel_by_mode.pivot_table(index='hhid', columns='mode', values='length_in_km', fill_value=0)
Out[11]:
mode  BRT  Dala-Dala  Private Vehicle  Walk
hhid
1       6          4                0     5
2       0          7                8     0
3       0          7                0     6
4       0          8                7     0
5      10          0                0     9

答案 1 :(得分:0)

不确定我是否完全理解问题,但是也许可以帮上忙吗?

travel_by_mode.pivot(index='hhid',columns='mode', values='length_in_km')