Python Pandas问题:
我有一个包含3列的表:From_City,To_City,Trip_Count和4行:
+-----------+---------+------------+
| From_City | To_City | Trip_Count |
+-----------+---------+------------+
| Berlin | London | 2 |
| London | Berlin | 3 |
| Sydney | Tokyo | 4 |
| Tokyo | Sydney | 6 |
+-----------+---------+------------+
我想将城市之间的旅行总结为一个只有2行的新表:
+--------+------------+------------+
| City | Other_City | Trip_Count |
+--------+------------+------------+
| Berlin | London | 5 |
| Sydney | Tokyo | 10 |
+--------+------------+------------+
我无法弄清楚如何在Python中实现这一点(最好是在Pandas中)。有什么建议?谢谢!
注意:两个城市之间的顺序并不重要。无论是柏林 - 伦敦还是伦敦 - 柏林都可以。
答案 0 :(得分:1)
import pandas as pd
df = pd.DataFrame({'From_City': ['Berlin', 'London', 'Sydney', 'Tokyo'], 'To_City': ['London', 'Berlin', 'Tokyo', 'Sydney'], 'Trip_Count': [2, 3, 4, 6]})
print df.apply(lambda x: sorted(x[:2].tolist())+[x[2]], axis=1).groupby(['From_City', 'To_City']).sum()
结果
Trip_Count
From_City To_City
Berlin London 5
Sydney Tokyo 10