核心三件套:
pandas:数据读取、清洗、表格处理(最核心)matplotlib/seaborn:可视化画图numpy:数值计算
一、安装依赖
pip install pandas numpy matplotlib seaborn
二、完整示例脚本(可直接复制运行)
场景:读取 csv 文件,做数据探查、清洗、统计、绘图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 设置中文,防止图表乱码
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False
# ---------------------- 1. 读取数据 ----------------------
# 支持 csv / excel / txt
df = pd.read_csv("data.csv")
# 如果是excel:df = pd.read_excel("data.xlsx")
# ---------------------- 2. 基础探查 ----------------------
print("===== 前5行数据 =====")
print(df.head())
print("\n===== 数据形状(行数,列数) =====")
print(df.shape)
print("\n===== 字段类型 =====")
print(df.dtypes)
print("\n===== 缺失值统计 =====")
print(df.isnull().sum())
print("\n===== 描述性统计(均值、最大最小等) =====")
print(df.describe())
print("\n===== 列名 =====")
print(df.columns.tolist())
# ---------------------- 3. 数据清洗 ----------------------
# 删除存在缺失值的行
df = df.dropna()
# 填充缺失值:df["col"] = df["col"].fillna(0)
# 删除重复行
df = df.drop_duplicates()
# 筛选数据示例:筛选值大于100的行
# df_filter = df[df["销售额"] > 100]
# ---------------------- 4. 简单统计分析 ----------------------
# 单列均值
mean_val = df["销售额"].mean()
print(f"\n销售额平均值:{mean_val:.2f}")
# 分组统计:按地区分组,求销售额总和
group_result = df.groupby("地区")["销售额"].sum()
print("\n按地区汇总销售额:")
print(group_result)
# ---------------------- 5. 可视化 ----------------------
# 柱状图:分组结果
group_result.plot(kind="bar", title="各地区销售额")
plt.ylabel("销售额")
plt.tight_layout()
plt.savefig("bar.png")
plt.show()
# 直方图,查看数值分布
df["销售额"].plot(kind="hist", bins=10, title="销售额分布直方图")
plt.show()
# ---------------------- 6. 结果导出 ----------------------
group_result.to_csv("统计结果.csv", encoding="utf-8-sig")
print("\n统计结果已保存到 统计结果.csv")
三、如果你没有 csv,直接用模拟数据测试
把上面脚本读取数据部分替换成下面代码,不需要外部文件:
# 构造模拟数据集
data = {
"地区": ["南京", "苏州", "无锡", "南京", "苏州", "无锡"],
"销售额": [120, 180, 90, 140, 210, 110],
"月份": [1,1,1,2,2,2]
}
df = pd.DataFrame(data)
四、常用 pandas 高频操作速查
# 选取单列
df["销售额"]
# 多列
df[["地区","销售额"]]
# 条件筛选
df[ (df["销售额"]>100) & (df["地区"]=="南京") ]
# 新增列
df["利润"] = df["销售额"] * 0.3
# 排序
df_sort = df.sort_values("销售额", ascending=False)
# 唯一值
df["地区"].unique()
五、简单分析通用流程
加载数据:csv/excel
数据探查:看样本、类型、缺失值
数据清洗:去空、去重、修正异常值
统计计算:均值 / 求和 / 分组聚合
可视化:柱状图、折线图、直方图
输出报告:保存结果到文件
六、拓展方向
时间序列:
pd.to_datetime()处理日期,按月 / 季度聚合高级绘图:
seaborn画箱线图、散点图看相关性相关性分析:
df.corr()计算字段相关系数
本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。
原文链接
欢迎访问