跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
PythonAI

Python 中 Pandas 库的基础使用指南

Pandas 是 Python 数据分析核心库,介绍 Series 和 DataFrame 基础结构、索引操作、数据查询(loc/iloc)、文件读写(CSV/Excel)、缺失值与重复值处理、布尔索引过滤及数据合并方法。涵盖常用 API 示例,适用于数据处理入门。

DotNetGuy发布于 2026/3/15更新于 2026/4/2714 浏览

1. Series

Series 可以看作是竖起来的列表,支持标签索引。

import pandas as pd
s_1 = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s_1.index)

当加入 index 后,index 的值即为对应数据的行名。Pandas 与 Numpy 的不同在于,Numpy 主要处理数值类型数据,而 Pandas 可处理字符串等混合类型。

print(s_1.values)

2. Series 操作

import pandas as pd

# 创建 Series
s_1 = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
s_2 = pd.Series(['lily', 'rose', 'jack'])

# (1) 通过标签访问
print(s_1['d'])          # 访问单个元素
print(s_1['a':'d'])      # 切片访问(包含结束标签)
print(s_1[['a', 'd']])   # 多标签访问

# (2) 通过索引访问
print(s_2[2])            # 整数索引
(s_2[:])          
(s_2[[, ]])       
(s_1[])


s_1 = s_1.drop()


(   s_2.values)


s_2[] = 


dic_1 = {: , : , : }
s_4 = pd.Series(dic_1)
(s_4)


s_4.index = (, (s_4))
(s_4)
print
0
2
# 整数切片
print
0
2
# 整数列表索引
print
4
# 删除
'a'
# 判断值是否存在
print
'jim'
not
in
# 修改
0
'Peter'
# 从字典创建
"name1"
"Peter"
"name2"
"tim"
"name3"
"rose"
print
# 重置索引
range
0
len
print

3. DataFrame

DataFrame 类似 Excel 表格,由多个 Series 拼接而成。

属性

  • df.columns:列名
  • df.index:行名

常见操作

import pandas as pd

df = pd.DataFrame(
    {'age': [10, 11, 12], 'name': ['tim', 'tom', 'rose'], 'income': [100, 200, 300]},
    index=['person1', 'person2', 'person3']
)
print(df)

# 修改列名
a = df.columns
df.columns = range(0, len(df.columns))
print(df.columns)

# 修改行名
print(df.index)
df.index = range(0, len(df.index))
print(df.index)

# 添加列
df['pay'] = [20, 30, 40]
print(df)

# 增加一行
df.loc['person4', ['age', 'name', 'income']] = [20, 'kitty', 200]
print(df)

# 访问某列
print(df.name)
a = df.name
b = df['name']

# 访问某些列
print(df[['age', 'name']])

# 访问行
print(df[0:2])

# 使用 loc 访问
print(df.loc[['person1', 'person3']])

# 访问某个值
print(df.loc['person1', 'name'])

# 删除列(原地)
del df['age']
print(df)

# 删除列(返回新对象)
data = df.drop('name', axis=1, inplace=False)
print(data)

# 删除行(原地)
df.drop('person3', axis=0, inplace=True)

4. 数据查询:loc 与 iloc

import pandas as pd
import numpy as np

# 生成指定日期 DataFrame
df = pd.DataFrame(
    np.arange(30).reshape(5, 6),
    index=['20180101', '20180102', '20180103', '20180104', '20180105'],
    columns=['A', 'B', 'C', 'D', 'E', 'F']
)

# loc() 方法:基于标签索引
print(df.loc['20180103', 'B'])           # 打印某个值
print(df.loc[:, 'B'])                    # 打印某列
print(df.loc['20180103':, 'B'])          # 打印某列切片
print(df.loc['20180103':, ['B', 'D']])   # 打印多列切片
print(df.loc['20180101', :])             # 打印某行
print(df.loc['20180103':, :])            # 打印某行切片

# iloc() 方法:基于位置索引
print(df.iloc[1, 2])                     # 获取某个数据
print(df.iloc[:, 2])                     # 获取某列
print(df.iloc[:, [1, 3]])                # 获取某几列
print(df.iloc[1, :])                     # 获取某行
print(df.iloc[[1, 2, 4], :])             # 获取某些行

5. 数据导入与导出

读取 CSV

# 默认第一行为列名
pd.read_csv('文件名')

# 无列名时设置 header=None
pd.read_csv('文件名', header=None)

读取 Excel

pd.read_excel('文件名')

读取 TXT

# sep 指定分隔符
pd.read_txt('文件名', sep=',', header=None)

导出文件

# 导出 CSV,index=True 表示包含行索引
df.to_csv('导出.csv', index=True)

# 导出 Excel 方法类似
df.to_excel('导出.xlsx')

6. 缺失值处理

isnull()

判断空值位置,空值输出 True,否则 False。

fillna()

填充缺失值,通常将全部缺失值填充为同一数值。

dropna()

删除包含缺失值的整行数据。

7. 重复值处理

duplicated()

查找重复位置,重复输出 True,否则 False。

根据列名判断重复

# 参数为文件中的列名
duplicated('列名 1', '列名 2')

提取重复行信息

通过布尔索引提取输入为 True 的整行数据。

删除重复行

使用 drop_duplicates() 删除重复的行。

8. 数据过滤与抽取

条件筛选

# 选取好评数大于 17000 的信息
df_1 = df[df['好评数'] > 17000]

字符串匹配

# str.contains 对列元素进行匹配,存在输出 True
# na=False 表示缺失项不输出具体信息
series.str.contains('参数', na=False)

逻辑运算

使用 &(和)、|(或)组合多个条件。

9. 数据框合并

使用 concat() 函数进行合并。

import pandas as pd
import numpy as np

df_1 = pd.DataFrame(np.arange(12).reshape(3, 4))
df_2 = 2 * df_1

# 竖向合并
new_df1 = pd.concat([df_2, df_1])

# 横向合并
new_df2 = pd.concat([df_1, df_2], axis=1)

# join 参数:inner 表示交集,outer 表示并集
df_3 = pd.DataFrame(np.arange(12).reshape(3, 4), index=['A', 'B', 2])
new_df3 = pd.concat([df_1, df_3], axis=1, join='inner')
new_df4 = pd.concat([df_1, df_3], axis=1, join='outer')

目录

  1. 1. Series
  2. 2. Series 操作
  3. 创建 Series
  4. (1) 通过标签访问
  5. (2) 通过索引访问
  6. 删除
  7. 判断值是否存在
  8. 修改
  9. 从字典创建
  10. 重置索引
  11. 3. DataFrame
  12. 属性
  13. 常见操作
  14. 修改列名
  15. 修改行名
  16. 添加列
  17. 增加一行
  18. 访问某列
  19. 访问某些列
  20. 访问行
  21. 使用 loc 访问
  22. 访问某个值
  23. 删除列(原地)
  24. 删除列(返回新对象)
  25. 删除行(原地)
  26. 4. 数据查询:loc 与 iloc
  27. 生成指定日期 DataFrame
  28. loc() 方法:基于标签索引
  29. iloc() 方法:基于位置索引
  30. 5. 数据导入与导出
  31. 读取 CSV
  32. 默认第一行为列名
  33. 无列名时设置 header=None
  34. 读取 Excel
  35. 读取 TXT
  36. sep 指定分隔符
  37. 导出文件
  38. 导出 CSV,index=True 表示包含行索引
  39. 导出 Excel 方法类似
  40. 6. 缺失值处理
  41. isnull()
  42. fillna()
  43. dropna()
  44. 7. 重复值处理
  45. duplicated()
  46. 根据列名判断重复
  47. 参数为文件中的列名
  48. 提取重复行信息
  49. 删除重复行
  50. 8. 数据过滤与抽取
  51. 条件筛选
  52. 选取好评数大于 17000 的信息
  53. 字符串匹配
  54. str.contains 对列元素进行匹配,存在输出 True
  55. na=False 表示缺失项不输出具体信息
  56. 逻辑运算
  57. 9. 数据框合并
  58. 竖向合并
  59. 横向合并
  60. join 参数:inner 表示交集,outer 表示并集
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • WebGIS 视角:体感温度实证,哪座“火炉”最热?
  • 机器人操作VLA模型的强化学习:综述
  • PyCharm 零基础入门指南:项目创建、配置与高效开发
  • Python 中 NumPy 库的基础使用详解
  • Meta-Llama-3-8B-Instruct 在 vLLM 加速下的多轮对话实践
  • Flutter package:web 在 OpenHarmony 中的 Wasm GC 与 DOM 互操作适配
  • 人形机器人:百万亿美元赛道的终极逻辑与通用平台化
  • 频率自适应多模态推荐的结构化谱推理
  • 前端精确数字运算解决方案:使用 BigNumber.js 处理 JavaScript 精度问题
  • YApi 代码生成功能使用指南:自动生成前端请求代码
  • Java Lambda 表达式详解
  • Qwen3-VL 与 LLaMA-Factory 实现 Grounding 任务 LoRA 微调
  • Miniforge 在 macOS 和 Windows 上的安装与配置指南
  • 网络安全基础入门与学习路径指南
  • ToDesk ToClaw 评测:基于 OpenClaw 的零门槛 AI 自动化方案
  • CellWhisperer 多模态学习实现单细胞数据对话式探索
  • 深度体验 Ling Studio:万亿参数模型重塑 AI 开发工作流
  • 十大 AI 论文辅助工具评测:降重、去 AIGC 痕迹与写作效率提升
  • DeepSeek、Kimi 等 5 款网文 AI 写作工具实测与工作流解析
  • 基于 Spring Boot 的学生成绩管理系统设计与实现

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online