python - 如何通过跨列匹配对列值求和?

标签 python pandas

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/

相关文章:

python - 如何调试 HTTP 502 错误?

python - 如何在同一绘图上正确绘制个别年份的月度数据

python - 如何使用 Jython 导入 Pandas

python - 检查相同的行并在 Pandas 中有条件地创建新列

python - 创建一个列来保持连续值的运行计数

python - 如何在pygame中让相机跟随自上而下的汽车

python - 如何计算 PIL 逊相关矩阵并仅保留有效值?

Python:如何用零填充?

python - 基于另一个数据框创建数据框的最有效方法

python - 带有 databricks 的 Azure 文件系统事件