如何在Python中筛选高频城市数据并绘制客户数量分布图
解决方案
要只绘制4个高频城市的客户数量分布,可以按以下步骤修改代码:
筛选高频城市数据
先通过value_counts()获取home_state列的城市出现频率,提取前4个高频城市,再从原DataFrame中过滤出仅包含这些城市的数据:# 获取出现频率前4的城市 top_cities = df['home_state'].value_counts().head(4).index # 筛选仅包含这些城市的数据集 df_top_cities = df[df['home_state'].isin(top_cities)]绘制高频城市的计数图
使用筛选后的数据集绘制countplot,避免低频城市占用图表空间:import matplotlib.pyplot as plt import seaborn as sns plt.figure(num=None, figsize=(8,6), dpi=80, facecolor='w', edgecolor='k') sns.countplot(y='home_state', data=df_top_cities, order=top_cities) # order参数保证按频率从高到低排列 plt.title('Total Number of Customers (Top 4 Cities)', size=18) plt.ylabel('Home State', size=14) plt.show()
说明
value_counts().head(4)会自动按出现频率从高到低排序,提取前4个城市isin(top_cities)用来过滤原DataFrame,只保留目标城市的数据- 添加
order=top_cities可以确保图表中城市的顺序和频率排序一致,更直观
内容的提问来源于stack exchange,提问作者Samaneh Arzpeima
相关产品推荐
相关产品推荐

