You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python分析城市与运动变量的共现关联并实现可视化

Python实现运动项目-城市受欢迎度分析方案

1. 依赖库导入

import pandas as pd
import scipy.stats as stats
import matplotlib.pyplot as plt
import seaborn as sns
# 配置中文显示避免乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

2. 统计列表计算与输出

2.1 构建/导入数据集

自有数据集直接用pd.read_csv()导入即可,以下为模拟样例数据参考:

# 模拟1000条样本,覆盖3个城市、4种运动
data = pd.DataFrame({
    'City': ['City1']*300 + ['City2']*400 + ['City3']*300,
    'Sport': ['Sport1']*80 + ['Sport2']*120 + ['Sport3']*60 + ['Sport4']*40 +
             ['Sport1']*50 + ['Sport2']*200 + ['Sport3']*70 + ['Sport4']*80 +
             ['Sport1']*100 + ['Sport2']*70 + ['Sport3']*90 + ['Sport4']*40
})

2.2 交叉统计计算

分别计算绝对参与人数、各城市内运动占比两种统计结果,消除城市人口基数差异影响:

# 1. 绝对参与人数交叉表
count_cross = pd.crosstab(index=data['Sport'], columns=data['City'])
print("各城市各运动参与人数统计:")
print(count_cross)
# 导出为csv格式统计列表
count_cross.to_csv("运动参与人数统计.csv", encoding='utf-8-sig')

# 2. 城市内占比统计
rate_cross = pd.crosstab(index=data['Sport'], columns=data['City'], normalize='columns') * 100
print("\n各城市运动参与占比统计(单位:%):")
print(rate_cross.round(2))
rate_cross.to_csv("运动参与占比统计.csv", encoding='utf-8-sig')

2.3 显著性差异检验

用卡方独立性检验验证「运动项目受欢迎度和城市无关」的原假设是否成立:

chi2, p_value, dof, expected = stats.chi2_contingency(count_cross)
print(f"\n卡方检验结果: chi2值={chi2:.2f}, p值={p_value:.4f}")
if p_value < 0.05:
    print("结论:不同城市的运动项目受欢迎度存在显著差异")
else:
    print("结论:没有足够证据证明不同城市的运动项目受欢迎度存在差异")

3. 可视化展示

3.1 分组柱状图(对比同项目在不同城市的参与度差异)

plt.figure(figsize=(10,6))
count_cross.plot(kind='bar', ax=plt.gca())
plt.title('不同城市各运动参与人数对比')
plt.xlabel('运动项目')
plt.ylabel('参与人数')
plt.xticks(rotation=0)
plt.legend(title='城市')
plt.show()

如需展示占比,将上述代码中count_cross替换为rate_cross即可。

3.2 热力图(直观定位高参与度的城市-运动组合)

plt.figure(figsize=(8,6))
sns.heatmap(rate_cross, annot=True, fmt='.1f', cmap='Blues', cbar_kws={'label': '参与占比(%)'})
plt.title('各城市运动项目参与占比热力图')
plt.xlabel('城市')
plt.ylabel('运动项目')
plt.show()

内容的提问来源于stack exchange,提问作者praha1984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:27:00