如何使用交叉列匹配对列值求和?

2024-04-26 00:31:17 发布

您现在位置:Python中文网/ 问答频道 /正文

Python熊猫问题:

我有一个表,有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中)。有什么建议吗?谢谢!你知道吗

注意:两个城市之间的顺序无关紧要。柏林-伦敦或伦敦-柏林都可以。你知道吗


Tags: tofromcitypandas顺序count建议汇总
1条回答
网友
1楼 · 发布于 2024-04-26 00:31:17
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

相关问题 更多 >