前言

如果你经常和 Excel 打交道,处理大量数据时卡顿、重复操作、手动清洗太麻烦,那 Pandas 就是你的神器。它是 Python 最常用的数据分析库,像 “代码版 Excel”,能轻松处理百万行数据,自动化清洗、统计、筛选,学会它,数据分析效率直接起飞。本文以王者荣耀数据为例。

一、安装

打开电脑终端(Windows 用 CMD,Mac/Linux 用终端),输入:

pip install pandas openpyxl
  • pandas:核心库

  • openpyxl:读写 Excel 必备

安装完成后,在代码里导入并简写为 pd

import pandas as pd

二、两个核心概念:

Pandas 只有两个核心结构,记住就行:

1. Series(一维数据)

可以理解为一列数据,带索引。

s = pd.Series([100, 200, 300], index=["鲁班", "后羿", "狄仁杰"])
print(s)

2. DataFrame(二维表格)

就是完整的 Excel 表格,行 + 列,是我们最常用的对象。

data = {
    "英雄名": ["鲁班", "后羿", "狄仁杰"],
    "最大生命": [1000, 1200, 1100],
    "上线年份": ["2015年", "2015年", "2016年"]
}
df = pd.DataFrame(data)
print(df)

三、最常用操作:

1. 读取文件(Excel/CSV)

# 读取 Excel
df = pd.read_excel("hero.xlsx")

# 读取 CSV
df = pd.read_csv("hero.csv", encoding="utf-8")

2. 快速查看数据

# 前5行
df.head()

# 基本信息(行数、列数、类型)
df.info()

# 统计描述(均值、最大最小等)
df.describe()

# 查看列名
df.columns

3. 选择行列

# 选一列
df["英雄名"]

# 选多列
df[["英雄名", "最大生命", "上线年份"]]

# 按条件筛选(生命 > 1000 的英雄)
df[df["最大生命"] > 1000]

4. 数据清洗

(1)去重
# 整表去重
df = df.drop_duplicates()

# 按某列去重(如按英雄名)
df = df.drop_duplicates(subset=["英雄名"])
(2)删除空值
# 删除英雄ID为空的行
df = df.dropna(subset=["英雄ID"])
(3)填充空值

   数字列(生命、攻击)→ 用中位数

df["最大生命"] = df["最大生命"].fillna(df["最大生命"].median())

 文字列(年份、名称)→ 用众数(出现最多的值)

df["上线年份"] = df["上线年份"].fillna(df["上线年份"].mode()[0])

5. 简单统计

# 均值
df["最大生命"].mean()

# 总和
df["最大生命"].sum()

# 最大值/最小值
df["最大生命"].max()
df["最大生命"].min()

# 分组统计(按上线年份算平均生命)
df.groupby("上线年份")["最大生命"].mean()

6. 导出结果

# 导出 Excel
df.to_excel("hero_clean.xlsx", index=False)

# 导出 CSV
df.to_csv("hero_clean.csv", index=False, encoding="utf-8")

四、完整实战案例

以王者荣耀英雄数据清洗为例,从头到尾跑一遍:

import pandas as pd

# 1. 读取数据
df = pd.read_excel("hero(1).xlsx")

# 2. 查看数据
print("数据前5行:")
print(df.head())

# 3. 去重
df = df.drop_duplicates()

# 4. 删除无ID的行
df = df.dropna(subset=["英雄ID"])

# 5. 填充空值
df["最大生命"] = df["最大生命"].fillna(df["最大生命"].median())
df["上线年份"] = df["上线年份"].fillna(df["上线年份"].mode()[0])

# 6. 筛选高生命英雄
strong_hero = df[df["最大生命"] > df["最大生命"].mean()]

# 7. 导出清洗后数据
strong_hero.to_excel("高生命英雄名单.xlsx", index=False)

print("清洗完成!")
print(strong_hero.head())

Pandas 不用死记硬背,记住这套流程就够新手用很久:安装 → 读取 → 查看 → 筛选 → 清洗 → 统计 → 导出

所有代码都可以直接复制修改,遇到报错先看是不是函数名、文件格式、数据类型用错,90% 的问题都能解决。

学会 Pandas,你就正式踏入 Python 数据分析的大门啦!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐