Pandas基础入门:数据处理新手必备指南

部署运行你感兴趣的模型镜像

一、什么是 Pandas?为什么要学它?​

Pandas 是 Python 生态中最强大的数据处理库,专为结构化数据(表格、CSV、Excel 等)设计,就像 “Python 版的 Excel”,但功能更强大、处理速度更快,支持百万级数据高效操作。​

无论是数据分析、机器学习数据预处理,还是日常工作中的数据整理,Pandas 都能帮你:​

  • 快速读取 / 保存 CSV、Excel、数据库等多种格式数据​
  • 一键查看数据基本信息(缺失值、统计特征)​
  • 灵活筛选、排序、分组数据​
  • 轻松处理缺失值、重复值​
  • 高效合并多个数据集​

二、环境准备:安装 Pandas​

首先确保已安装 Python(推荐 3.7+),然后通过 pip 安装 Pandas:​

# 终端/命令行执行​
pip install pandas​
# 若需读取Excel文件,额外安装openpyxl(处理.xlsx)和xlrd(处理.xls)​
pip install openpyxl xlrd

安装完成后,在 Python 脚本 / Notebook 中导入:​

import pandas as pd  # 约定简写为pd,行业通用

三、核心数据结构:Series 与 DataFrame​

Pandas 有两个核心数据结构,几乎所有操作都围绕它们展开:​

1. Series:一维标签数组​

类似 “带索引的列表”,由数据值和索引(index) 组成,支持多种数据类型(数值、字符串、日期等)。​

# 创建Series(默认索引为0,1,2...)​
s = pd.Series([10, 20, 30, 40], name="销量")​
print(s)​
# 输出结果:​
# 0    10​
# 1    20​
# 2    30​
# 3    40​
# Name: 销量, dtype: int64​
​
# 自定义索引​
s = pd.Series([10, 20, 30, 40], index=["产品A", "产品B", "产品C", "产品D"], name="销量")​
print(s["产品B"])  # 按索引取值,输出20

2. DataFrame:二维表格数据(重点)​

类似 Excel 表格,由行索引(index) 、列名(columns) 和数据值(values) 组成,是 Pandas 最常用的数据结构。​

# 方式1:字典创建DataFrame(键=列名,值=列数据)​
data = {​
    "姓名": ["张三", "李四", "王五", "赵六"],​
    "年龄": [25, 32, 28, 40],​
    "城市": ["北京", "上海", "广州", "深圳"],​
    "薪资": [15000, 20000, 18000, 25000]​
}​
df = pd.DataFrame(data)​
print(df)​
# 输出结果(自动生成行索引0-3):​
#    姓名  年龄  城市     薪资​
# 0  张三  25  北京  15000​
# 1  李四  32  上海  20000​
# 2  王五  28  广州  18000​
# 3  赵六  40  深圳  25000​
​
# 方式2:读取外部文件(实际工作最常用)​
# 读取CSV(最常用格式)​
df_csv = pd.read_csv("data.csv")  # 括号内为文件路径​
# 读取Excel​
df_excel = pd.read_excel("data.xlsx", sheet_name="Sheet1")  # sheet_name指定工作表

四、数据查看:快速了解数据全貌​

拿到 DataFrame 后,先通过以下方法快速摸清数据情况:​

# 1. 查看前n行(默认5行,适合大文件)​
print(df.head(3))  # 查看前3行​
# <class 'pandas.core.frame.DataFrame'>​
# RangeIndex: 4 entries, 0 to 3  # 4行数据​
# Data columns (total 4 columns):  # 4列​
#  #   Column  Non-Null Count  Dtype​
# ---  ------  --------------  -----​
#  0   姓名     4 non-null      object  # 字符串类型,无缺失值​
#  1   年龄     4 non-null      int64   # 整数类型,无缺失值​
#  2   城市     4 non-null      object​
#  3   薪资     4 non-null      int64​
# dtypes: int64(2), object(2)​
# memory usage: 256.0+ bytes​
​
# 4. 查看数值型列的统计特征(均值、标准差、最值等)​
print(df.describe())  # 仅对年龄、薪资等数值列生效​
# 输出示例:​
#          年龄           薪资​
# count   4.000000      4.000000​
# mean   31.250000  19500.000000  # 均值​
# std     6.685097   4183.300133  # 标准差​
# min    25.000000  15000.000000  # 最小值​
# 25%    27.250000  17250.000000  # 25分位数​
# 50%    30.000000  19000.000000  # 中位数(50分位数)​
# 75%    34.000000  21250.000000  # 75分位数​
# max    40.000000  25000.000000  # 最大值​
​
# 5. 查看列名​
print(df.columns.tolist())  # 输出['姓名', '年龄', '城市', '薪资']

五、数据筛选:提取需要的信息​

筛选是数据处理的核心操作,Pandas 支持多种灵活的筛选方式:​

1. 按列筛选(提取指定列)​

# 方式1:单列(返回Series)​
df_age = df["年龄"]​
# 方式2:多列(返回DataFrame,注意双层括号)​
df_name_salary = df[["姓名", "薪资"]]​
print(df_name_salary)

2. 按行筛选(条件筛选)​

# 条件1:年龄>30​
df_age_gt30 = df[df["年龄"] > 30]​
# 条件2:城市为上海​
df_shanghai = df[df["城市"] == "上海"]​
# 多条件组合(&=且,|=或,条件需加括号)​
df_cond = df[(df["年龄"] > 28) & (df["薪资"] > 19000)]  # 年龄>28且薪资>19000​
print(df_cond)

3. 按行号 / 列号筛选(iloc 方法)​

通过索引位置(0 开始)筛选,适合已知数据位置的场景:​

# iloc[行索引, 列索引],支持切片​
df_iloc = df.iloc[1:3, 0:2]  # 行1-2(左闭右开),列0-1(姓名、年龄)​
print(df_iloc)

六、数据清洗:处理缺失值与重复值​

实际数据常存在缺失、重复等问题,Pandas 提供了简洁的处理方法:​

1. 处理缺失值(NaN 表示)​

# 先查看缺失值数量​
print(df.isnull().sum())  # 按列统计缺失值​
​
# 方式1:删除缺失值(适合缺失少量数据)​
df_drop = df.dropna()  # 删除包含缺失值的行​
df_drop_col = df.dropna(axis=1)  # 删除包含缺失值的列​
​
# 方式2:填充缺失值(适合缺失较多数据)​
df_fill = df.fillna({​
    "年龄": df["年龄"].mean(),  # 数值列用均值填充​
    "城市": "未知"  # 字符串列用固定值填充​
})

2. 处理重复值​

# 查看重复行数量​
print(df.duplicated().sum())​
​
# 删除重复行(保留第一行)​
df_clean = df.drop_duplicates()​
​
# 按指定列去重(如按姓名去重)​
df_clean_name = df.drop_duplicates(subset=["姓名"], keep="last")  # keep="last"保留最后一行

七、数据保存:将处理后的数据导出​

处理完成后,可将 DataFrame 导出为 CSV、Excel 等格式:​

# 导出CSV(index=False不保存行索引,推荐)​
df_clean.to_csv("clean_data.csv", index=False, encoding="utf-8-sig")  # utf-8-sig解决中文乱码​
​
# 导出Excel​
df_clean.to_excel("clean_data.xlsx", sheet_name="清洗后数据", index=False)

八、新手常见问题与注意事项​

  1. 中文乱码:读取 / 保存时指定encoding="utf-8-sig"(CSV)或使用 openpyxl 引擎(Excel)。​
  2. 索引问题:避免直接修改行索引,如需重置索引用df.reset_index(drop=True)。​
  3. 数据类型:字符串列(object 类型)无法直接做数值运算,需用df["列名"].astype(int)转换类型。​
  4. 链式操作:尽量避免多层链式操作(如df[df["年龄"]>30]["薪资"]=20000),可能导致 SettingWithCopyWarning 警告,建议用df.loc[df["年龄"]>30, "薪资"]=20000。​

总结​

Pandas 的基础操作核心围绕 “读取 - 查看 - 筛选 - 清洗 - 保存” 展开,掌握本文的 Series/DataFrame、数据查看、筛选、清洗等技能,就能应对 80% 的日常数据处理场景。​

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值