如何绘制两列数据高频组合的频次分布图?
两列组合频次统计及TOP10可视化实现
以下是基于你提供的数据集,实现两列组合频次统计并绘制TOP10分布图的完整代码方案:
1. 环境依赖
确保你已安装pandas和matplotlib库,若未安装可通过以下命令安装:
pip install pandas matplotlib
2. 完整代码实现
import pandas as pd import matplotlib.pyplot as plt # 构造你提供的数据集 data = { 'acq_cc': ['CN', 'IN', 'CN', 'CN', 'CN', 'IN', 'CN', 'CN', 'CN', 'ZA'], 'tar_cc': ['GB', 'ZA', 'NO', 'AR', 'VG', 'JP', 'NL', 'PK', 'PK', 'SG'] } df = pd.DataFrame(data) # 生成"acq_cc - tar_cc"格式的组合列 df['cc_combination'] = df['acq_cc'] + ' - ' + df['tar_cc'] # 统计各组合频次,提取TOP10并整理格式 top10_combinations = df['cc_combination'].value_counts().head(10).reset_index() top10_combinations.columns = ['组合', '出现次数'] # 绘制柱状分布图 plt.figure(figsize=(10, 6)) plt.bar(top10_combinations['组合'], top10_combinations['出现次数'], color='#2ca02c') plt.xlabel('国家/地区组合') plt.ylabel('出现次数') plt.title('TOP10高频国家/地区组合频次分布') plt.xticks(rotation=45, ha='right') # 旋转X轴标签,避免重叠 plt.tight_layout() # 自动调整图表布局 plt.show()
3. 代码说明
- 构造数据集:将你给出的两列数据转换成Pandas DataFrame,方便后续处理
- 生成组合列:通过字符串拼接,把
acq_cc和tar_cc合并为指定格式的组合(如CN - PK) - 统计TOP10:用
value_counts()快速统计每个组合的出现次数,通过head(10)提取高频TOP10,重置索引并重命名列,让数据结构更清晰 - 可视化:用Matplotlib绘制柱状图,调整X轴标签旋转角度和布局,确保图表可读性
运行代码后,你会得到一个清晰的TOP10组合频次柱状图,X轴为组合名称,Y轴为对应出现次数,完美解决你之前因缺失无关字段报错的问题。
内容的提问来源于stack exchange,提问作者Paul Engelbert
相关产品推荐
相关产品推荐

