17370845950

用python怎么统计数据
Python统计数据分析核心是pandas、numpy、scipy和matplotlib/seaborn:用describe()得基础统计量,groupby实现分层汇总,scipy.stats做t检验、卡方检验和相关性分析,seaborn快速绘直方图、箱线图和热力图,并强调先用info()和isnull().sum()检查数据质量。

用 Python 统计数据,核心是用好 pandas(处理表格数据)、numpy(数值计算)、scipy(统计检验)和 matplotlib/seaborn(可视化)。不需要写复杂代码,几行就能完成常见统计任务。

快速计算基础统计量

读入数据后,直接调用 .describe() 就能一键输出均值、标准差、最小值、四分位数、最大值等:

import pandas as pd
df = pd.read_csv("data.csv")
print(df.describe()) # 对所有数值列自动统计

想单独算某个指标,比如某列的中位数或方差,直接用方法:

  • df["age"].mean() → 平均年龄
  • df["score"].median() → 分数中位数
  • df["price"].std() → 价格标准差
  • df["category"].value_counts() → 分类变量频数统计

按组别分层统计

比如“不同城市销量平均值”“各年级男生女生人数”,用 groupby + 聚合函数最方便:

# 按城市统计平均销量和总销量
df.groupby("city")["sales"].agg(["mean", "sum"])

# 按年级和性别统计人数
df.groupby(["grade", "gender"]).size()

支持多列分组、多种聚合方式混用,还能加条件筛选后再统计,灵活度高。

做假设检验和相关性分析

需要判断两组数据是否有显著差异?变量之间是否相关?直接调用 scipy.stats

  • t 检验(比较两组均值):from scipy.stats import ttest_ind; ttest_ind(group_a, group_b)
  • 卡方检验(分类变量关联性):from scipy.stats import chi2_contingency; chi2_contingency(pd.crosstab(df["sex"], df["buy"]))
  • 皮尔逊相关系数:df[["height", "weight"]].corr(method="pearson")

返回结果包含统计量、p 值,帮你快速判断是否显著。

画图辅助理解分布和关系

光看数字容易忽略异常值或偏态。用 seaborn 几行就能出专业图表:

import seaborn as sns
import matplotlib.pyplot as plt

sns.histplot(df["income"], kde=True) # 直方图+密度曲线
sns.boxplot(x="region", y="sales", data=df) # 分组箱线图
sns.heatmap(df.corr(), annot=True) # 相关性热力图

图形比数字更直观,常能第一时间发现问题,比如某城市销量异常高、收入严重右偏等。

基本上就这些——从读数据、算指标、分组汇总,到检验和画图,Python 都有成熟、简洁的实现。不复杂但容易忽略的是:先用 df.info()df.isnull().sum() 看清数据质量,再统计,效果会好很多。