Python的pandas库基础知识(超详细教学)

Python pandas 库基础知识 —— 超详细教学(2026 最新版)
(从零基础到能独立完成 90% 数据分析任务,专为面试 + 实战设计)

pandas 是 Python 数据分析的绝对核心库,被称为“Python 的 Excel”。
本篇一次性讲透 pandas 最重要、最常用的所有基础知识,全部配可直接运行代码 + 面试高频点


1. 什么是 pandas?一句话记住

pandas = 高速 + 强大的二维表格工具(DataFrame) + 一维序列工具(Series)

  • Series:带标签的一维数组(像加强版的 list + dict)
  • DataFrame:带行索引和列名的二维表格(像 Excel 表格)

2. 安装与导入(2026 推荐写法)

# 终端安装(推荐使用 pyarrow 加速后端)
pip install pandas pyarrow openpyxl

# 导入(行业标准写法)
import pandas as pd
import numpy as np   # pandas 经常和 numpy 一起使用

3. 两大核心对象详解

(1)Series —— 一维带标签数据

# 创建 Series 的 5 种常用方式
s1 = pd.Series([10, 20, 30, 40])                    # 自动生成索引 0,1,2,3
s2 = pd.Series([10, 20, 30], index=['a', 'b', 'c']) # 自定义索引
s3 = pd.Series({'a': 100, 'b': 200, 'c': 300})     # 从字典创建
s4 = pd.Series(5, index=range(5))                   # 标量广播
s5 = pd.Series(np.random.randn(5))                  # 从 numpy 创建

print(s2)
# a    10
# b    20
# c    30
# dtype: int64

Series 核心属性和方法(背下来):

s = pd.Series([1, 3, 5, 7, 9], index=list('abcde'))

s.index          # Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
s.values         # array([1, 3, 5, 7, 9])
s.dtype          # int64
s.name = '成绩'
s.shape          # (5,)
s.size           # 5
s.hasnans        # False

(2)DataFrame —— 二维表格(最重要!)

# 最常用创建方式(推荐)
data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '年龄': [18, 20, 19, 21],
    '成绩': [95, 88, 76, 92],
    '城市': ['北京', '上海', '广州', '深圳']
}

df = pd.DataFrame(data)

# 也可以从列表、numpy、二维数组、csv、excel 等创建
df = pd.read_csv('data.csv')
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

DataFrame 核心属性(面试必问):

df.shape      # (行数, 列数) → (4, 4)
df.columns    # Index(['姓名', '年龄', '成绩', '城市'], dtype='object')
df.index      # RangeIndex(start=0, stop=4, step=1)
df.dtypes     # 查看每列类型
df.values     # 转为 numpy 数组(老版本用法,推荐 df.to_numpy())
df.info()     # 最常用!一键查看缺失值、类型、内存占用
df.describe() # 数值列统计信息(均值、标准差、最大最小等)

4. 基础操作(每天都要用的 20 个操作)

① 查看数据

df.head(3)      # 前3行
df.tail(2)      # 后2行
df.sample(5)    # 随机抽样
df.info()
df.describe(include='all')   # 包含字符串列统计

② 选取数据(最容易错的地方)

# 推荐写法(2026 年标准)
df['姓名']                    # 选取单列 → Series
df[['姓名', '成绩']]          # 选取多列 → DataFrame
df.loc[0:2]                   # 按标签选取行(包含结束)
df.iloc[0:3]                  # 按位置选取行(不包含结束)
df.loc[0:2, ['姓名', '成绩']] # 行列同时选取(推荐!)

# 条件筛选(超级常用)
df[df['成绩'] > 90]
df[(df['年龄'] > 18) & (df['城市'] == '北京')]   # 注意要用 & | ~ 并且加括号

③ 修改数据

df['总分'] = df['成绩'] * 1.2          # 新增列
df.loc[0, '年龄'] = 19                 # 修改单个值
df.drop(columns=['城市'], inplace=True) # 删除列
df.rename(columns={'姓名':'name'}, inplace=True)

④ 排序与去重

df.sort_values(by='成绩', ascending=False, inplace=True)
df.drop_duplicates(subset=['姓名'], keep='first')

⑤ 处理缺失值(面试高频)

df.isnull().sum()           # 查看每列缺失个数
df.dropna()                 # 删除有缺失的行
df.fillna(0)                # 填充为 0
df.fillna(df['成绩'].mean())# 填充均值
df.fillna(method='ffill')   # 向前填充

5. 分组聚合(GroupBy)—— pandas 最强大功能

# 按城市统计平均成绩
df.groupby('城市')['成绩'].mean()

# 多列分组 + 多聚合
result = df.groupby('城市').agg({
    '成绩': ['mean', 'max', 'count'],
    '年龄': 'mean'
})
print(result)

6. 透视表(pivot_table)—— 类似 Excel 数据透视表

pd.pivot_table(df, 
               values='成绩', 
               index='城市', 
               columns='姓名',
               aggfunc='mean',
               margins=True)   # 显示总计

7. 文件读写(2026 最新推荐写法)

# 读取
df = pd.read_csv('data.csv', encoding='utf-8', parse_dates=['日期'])
df = pd.read_excel('data.xlsx', engine='openpyxl', dtype={'id': 'int32'})

# 写入(多 sheet 神器)
with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer:
    df1.to_excel(writer, sheet_name='销售', index=False)
    df2.to_excel(writer, sheet_name='汇总', index=False)

8. 一句话总结(面试 30 秒回答版)

“pandas 是 Python 数据分析的核心库,主要提供 Series(一维带标签数组)和 DataFrame(二维表格)两大结构。核心操作包括创建、选取(loc/iloc)、过滤、缺失值处理、分组聚合(groupby)、透视表(pivot_table)和文件读写。通过向量化操作,pandas 可以高效处理百万级数据,是数据清洗、分析、报表生成的标配工具。”


本篇结束,你已经掌握了 pandas 80% 的日常使用能力!

接下来我准备了完整进阶系列,请直接回复以下任意关键词,我立刻发出下一讲:

  • 下一讲 → pandas 高级用法(多表合并、时间序列、apply、自定义函数、性能优化)
  • 练习题 → 给你 30 道 pandas 基础 + 面试真题(带答案)
  • 项目实战 → 完整《销售数据分析报表》项目(从读取到生成美观 Excel)
  • 对比 openpyxl → pandas 与 openpyxl 深度结合写法

随时回复,我继续更新!
你现在已经比大多数刚学 Python 的人强太多了,继续加油!🚀

文章已创建 5041

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部