欢迎光临
我们一直在努力

Python——Pandas库,超详细教程

一、Pandas 是什么?

Pandas 是 Python 里处理表格数据最强的库,类似 Excel,但能用代码批量、自动化处理。主要功能:

  • 读取 / 写入 Excel、CSV、SQL
  • 数据清洗、缺失值处理
  • 筛选、排序、分组统计
  • 合并、透视表、时间序列
  • 配合 Matplotlib/Seaborn 画图

二、安装 Pandas

bash

运行

pip install pandas

导入惯例:

python

运行

import pandas as pd
import numpy as np


三、Pandas 两大核心数据结构

1. Series(一维数据)

类似带索引的列表

python

运行

s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s)

2. DataFrame(二维表格)

最常用,就是一张表

python

运行

data = {
'姓名': ['小明', '小红', '小刚'],
'年龄': [20, 21, 19],
'成绩': [88, 92, 75]
}

df = pd.DataFrame(data)
print(df)


四、查看数据基础信息

python

运行

df.head() # 前5行
df.head(10) # 前10行
df.tail() # 后5行

df.info() # 字段类型、缺失值
df.describe() # 数值列统计(均值、标准差、分位数)
df.shape # (行数, 列数)
df.columns # 列名
df.index # 索引
df.dtypes # 每列类型


五、读取与保存文件

1. 读取 CSV

python

运行

df = pd.read_csv('data.csv')

2. 读取 Excel

需要安装:pip install openpyxl

python

运行

df = pd.read_excel('data.xlsx')

3. 保存

python

运行

df.to_csv('new.csv', index=False) # 不保存索引
df.to_excel('new.xlsx', index=False)


六、数据选择与筛选

1. 选列

python

运行

df['姓名']
df[['姓名', '成绩']]

2. 按行 / 位置筛选(loc /iloc)

  • iloc:按数字位置
  • loc:按标签 / 条件

python

运行

df.iloc[0] # 第0行
df.iloc[0:2] # 前两行
df.loc[:, '姓名'] # 姓名列

3. 条件筛选(最常用)

python

运行

# 成绩大于80
df[df['成绩'] > 80]

# 多条件
df[(df['年龄'] >= 20) & (df['成绩'] > 80)]

# 包含某字符
df[df['姓名'].str.contains('小')]


七、新增、修改、删除列

python

运行

# 新增列
df['性别'] = ['男', '女', '男']

# 修改列
df['年龄'] = df['年龄'] + 1

# 删除列
df = df.drop('性别', axis=1)


八、缺失值处理

python

运行

df.isnull().sum() # 每列缺失值数量
df.dropna() # 删除含缺失值行
df.fillna(0) # 缺失值填0
df.fillna(df.mean()) # 用均值填充


九、去重、排序

python

运行

df.drop_duplicates() # 去重

df.sort_values('成绩', ascending=False) # 降序
df.sort_index() # 按索引排序


十、数据统计

python

运行

df['成绩'].sum()
df['成绩'].mean()
df['成绩'].max()
df['成绩'].min()
df['成绩'].count()
df['成绩'].std() # 标准差


十一、分组聚合 groupby

python

运行

# 按性别分组算平均成绩
df.groupby('性别')['成绩'].mean()

# 多个聚合函数
df.groupby('性别').agg({
'成绩': ['mean', 'max', 'count'],
'年龄': 'mean'
})


十二、数据合并与连接

1. concat(拼接)

python

运行

df1 = pd.DataFrame({'a':[1,2]})
df2 = pd.DataFrame({'a':[3,4]})
df = pd.concat([df1, df2], ignore_index=True)

2. merge(类似 SQL join)

python

运行

pd.merge(df1, df2, on='id', how='inner')
# how: inner / left / right / outer


十三、透视表 pivot_table

python

运行

pd.pivot_table(df,
values='成绩',
index='性别',
columns='班级',
aggfunc='mean')


十四、时间序列处理

python

运行

df['时间'] = pd.to_datetime(df['时间'])
df['年'] = df['时间'].dt.year
df['月'] = df['时间'].dt.month

# 按月份重采样
df.resample('M')['销售额'].sum()


十五、简单可视化

需要:pip install matplotlib

python

运行

import matplotlib.pyplot as plt

df['成绩'].plot(kind='bar')
plt.show()

df.plot(kind='scatter', x='年龄', y='成绩')
plt.show()


十六、常用小技巧

python

运行

# 替换值
df['性别'].replace({'男':1, '女':0})

# 重命名列
df.rename(columns={'成绩':'分数'})

# 遍历行
for idx, row in df.iterrows():
print(row['姓名'], row['成绩'])

# 函数映射
df['等级'] = df['成绩'].apply(lambda x: '优秀' if x>=90 else '及格')


十七、完整小案例(可直接运行)

python

运行

import pandas as pd

data = {
'姓名': ['小明','小红','小刚','小李'],
'年龄': [20,21,19,22],
'成绩': [85,95,70,88]
}

df = pd.DataFrame(data)

# 筛选90分以上
high_score = df[df['成绩'] >= 90]
print(high_score)

# 统计平均成绩
print('平均分:', df['成绩'].mean())


如果你需要,我可以继续为你写:

  • 从零基础到实战的完整版 PDF 笔记
  • 100 道 Pandas 练习题(带答案)
  • Pandas 高频面试题总结你想要哪个版本?
  • 赞(0)
    未经允许不得转载:171主机测评 » Python——Pandas库,超详细教程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址