Python Pandas 问题:
我有一个包含 3 列的表格:From_City、To_City、Trip_Count 和 4 行:
+------------+--------+------------+
|来自_城市 |到_城市 |旅行计数 |
+------------+--------+------------+
|柏林 |伦敦 | 2 |
|伦敦 |柏林 | 3 |
|悉尼 |东京 | 4 |
|东京 |悉尼 | 6 |
+------------+--------+------------+
我想将城市之间的行程汇总到一个只有 2 行的新表中:
+--------+------------+------------+
|城市 |其他_城市 |旅行计数 |
+--------+------------+------------+
|柏林 |伦敦 | 5 |
|悉尼 |东京 | 10 |
+--------+------------+------------+
我不知道如何在 Python 中(最好是在 Pandas 中)实现这一点。有什么建议么?谢谢!
注意:两个城市之间的顺序无关紧要。柏林-伦敦或伦敦-柏林都可以。
最佳答案
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
关于python - 如何通过跨列匹配对列值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36636461/