我有一个要清除的“ 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)
最后,我希望有一个新的数据框,它可以显示每种车辆模式的总行驶距离。
帮助?
谢谢!
答案 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')