pandas 学习笔记
Pandas 学习笔记
参考教程:W3School Pandas 教程
1. Pandas 是什么
Pandas 是 Python 的数据分析库,常用于:
- 处理表格数据
- 清洗数据
- 分析数据
- 读取 CSV / Excel / JSON 等文件
- 统计和可视化前的数据准备
核心数据结构:
Series:一维带索引数据DataFrame:二维表格数据
导入方式:
import pandas as pd
2. Series
Series 类似一列数据,带索引。
创建 Series
import pandas as pd
a = [1, 7, 2]
myvar = pd.Series(a)
print(myvar)
指定索引
myvar = pd.Series(a, index=["x", "y", "z"])
print(myvar)
用字典创建 Series
calories = {"day1": 420, "day2": 380, "day3": 390}
myvar = pd.Series(calories)
print(myvar)
3. DataFrame
DataFrame 类似表格,有行有列。
创建 DataFrame
data = {
"calories": [420, 380, 390],
"duration": [50, 40, 45]
}
df = pd.DataFrame(data)
print(df)
指定行索引
df = pd.DataFrame(data, index=["day1", "day2", "day3"])
print(df)
访问某一行
print(df.loc["day2"])
访问多行
print(df.loc[["day1", "day2"]])
4. 读取文件
Pandas 可以读取多种数据源。
读取 CSV
df = pd.read_csv("data.csv")
print(df)
完整显示
print(df.to_string())
读取 JSON
df = pd.read_json("data.json")
print(df.to_string())
5. 常用查看方法
查看前几行
print(df.head())
默认前 5 行。
print(df.head(10))
查看前 10 行。
查看后几行
print(df.tail())
查看数据信息
print(df.info())
常看内容:
- 总行数
- 每列名称
- 非空数量
- 数据类型
6. 数据清洗
数据清洗是 Pandas 很重要的一部分。
常见问题:
- 空值
- 错误格式
- 错误数据
- 重复数据
7. 处理空值
删除包含空值的行
new_df = df.dropna()
print(new_df.to_string())
注意:默认不会修改原表。
直接修改原表
df.dropna(inplace=True)
填充空值
df.fillna(130, inplace=True)
某一列填充
df["Calories"].fillna(130, inplace=True)
用平均值填充
x = df["Calories"].mean()
df["Calories"].fillna(x, inplace=True)
用中位数填充
x = df["Calories"].median()
df["Calories"].fillna(x, inplace=True)
用众数填充
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace=True)
8. 修正数据格式
转换日期格式
df["Date"] = pd.to_datetime(df["Date"])
如果有错误日期,可以配合删除空值处理。
9. 修正错误数据
可以直接指定位置修改:
df.loc[7, "Duration"] = 45
也可以根据条件批量修改:
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.loc[x, "Duration"] = 120
或者直接删除异常行:
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.drop(x, inplace=True)
10. 删除重复数据
查重
print(df.duplicated())
删除重复行
df.drop_duplicates(inplace=True)
11. 数据分析基础
查看相关性
print(df.corr())
作用:
- 查看数值列之间的相关程度
- 接近
1:正相关 - 接近
-1:负相关 - 接近
0:相关性弱
注意:
- 相关性不等于因果关系
12. 绘图
Pandas 可以直接配合 matplotlib 画图。
折线图
df.plot()
散点图
df.plot(kind="scatter", x="Duration", y="Calories")
柱状图
df.plot(kind="bar")
使用前通常需要:
import matplotlib.pyplot as plt
plt.show()
完整例子:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("data.csv")
df.plot()
plt.show()
13. 高频方法速查
创建
pd.Series()
pd.DataFrame()
读取
pd.read_csv()
pd.read_json()
查看
df.head()
df.tail()
df.info()
df.to_string()
选取
df.loc[]
清洗
df.dropna()
df.fillna()
df.drop_duplicates()
pd.to_datetime()
统计
df.mean()
df.median()
df.mode()
df.corr()
绘图
df.plot()
14. 学习重点总结
我自己目前觉得 Pandas 入门最重要的是先掌握这几块:
Series和DataFrame的区别read_csv()读取数据head()/info()看数据结构dropna()/fillna()处理空值drop_duplicates()去重loc[]定位和修改数据to_datetime()处理日期corr()看相关性plot()做基础可视化
15. 一个最小练习流程
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("data.csv")
print(df.head())
print(df.info())
df["Calories"].fillna(df["Calories"].mean(), inplace=True)
df.drop_duplicates(inplace=True)
df["Date"] = pd.to_datetime(df["Date"])
print(df.corr(numeric_only=True))
df.plot()
plt.show()
这个流程可以帮助熟悉:
- 读取数据
- 查看数据
- 填空值
- 去重
- 转日期
- 计算相关性
- 绘图
16. 后续建议
继续往下学时,可以重点补:
iloc[]- 条件筛选
- 排序
- 分组统计
groupby() - 合并表
merge() - Excel 读写

浙公网安备 33010602011771号