如何用Python Pandas找出两列最常见组合并输出指定格式结果
pandas统计不区分方向的车站最常见组合
以下是实现需求的代码,核心思路是先将往返的车站组合标准化(统一排序),再统计频次:
import pandas as pd # 构造示例数据 data = { 'Start Station': ['A', 'A', 'B', 'C', 'A', 'C', 'C'], 'End Station': ['C', 'C', 'D', 'A', 'D', 'A', 'B'] } df = pd.DataFrame(data) # 生成不区分方向的标准化车站组合:将每行的两个车站排序后转为元组 df['standardized_pair'] = df.apply( lambda row: tuple(sorted([row['Start Station'], row['End Station']])), axis=1 ) # 获取出现次数最多的车站组合 top_pair = df['standardized_pair'].value_counts().idxmax() # 按要求格式输出结果 print(f"The most common combination is between {top_pair[0]} and {top_pair[1]}")
代码说明
- 标准化组合:通过
sorted对每行的起始/终点车站排序,让A→C和C→A被识别为同一个组合(A, C) - 统计频次:
value_counts()会统计各组合的出现次数,idxmax()直接提取频次最高的组合 - 格式化输出:用f-string将组合中的两个车站代入指定句式,输出符合要求的文本
内容的提问来源于stack exchange,提问作者ARadwan
相关产品推荐
相关产品推荐

