import pandas as pd
一、创建数据:从“空”到“有”的开始¶
pandas 最核心的数据结构是 Series(一维数据)和 DataFrame(二维表格数据,类似 Excel)。先从最简单的创建方式学起。
1. 创建 Series(一维数据)¶
Series 可以理解为带标签的“列表”,标签称为“索引”。
示例代码:
# 用列表创建 Series(默认索引是 0,1,2...)
s = pd.Series([10, 20, 30, 40])
print(s)
# 输出:
# 0 10
# 1 20
# 2 30
# 3 40
# dtype: int64
# 自定义索引(比如用日期或字母)
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s)
# 输出:
# a 10
# b 20
# c 30
# dtype: int64
2. 创建 DataFrame(二维表格数据)¶
DataFrame 是最常用的结构,类似 Excel 表格,由多个 Series 组成(每列是一个 Series)。
示例代码:
# 方法 1:用字典创建(键=列名,值=列数据)
data = {
"姓名": ["小明", "小红", "小刚"],
"年龄": [18, 19, 20],
"成绩": [90, 85, 95]
}
df = pd.DataFrame(data)
print(df)
# 输出:
# 姓名 年龄 成绩
# 0 小明 18 90
# 1 小红 19 85
# 2 小刚 20 95
# 方法 2:用二维列表创建(需指定列名)
df = pd.DataFrame([
["小明", 18, 90],
["小红", 19, 85],
["小刚", 20, 95]
], columns=["姓名", "年龄", "成绩"])
print(df) # 输出同上
二、查看数据:快速了解“表里有什么”¶
创建数据后,先通过基础方法查看数据的“外观”和“信息”,避免后续操作出错。
1. 查看数据前/后几行(快速预览)¶
head(n):查看前 n 行(默认 n=5)tail(n):查看后 n 行(默认 n=5)
示例代码:
# 查看前 2 行
print(df.head(2))
# 输出:
# 姓名 年龄 成绩
# 0 小明 18 90
# 1 小红 19 85
# 查看后 1 行
print(df.tail(1))
# 输出:
# 姓名 年龄 成绩
# 2 小刚 20 95
2. 查看数据统计信息¶
info():查看数据类型、非空值数量(快速检查数据是否有缺失)describe():对数值列统计(计数、均值、标准差、最大/最小值等)columns:查看列名index:查看行索引
示例代码:
# 查看数据基本信息(数据类型、非空值)
print(df.info())
# 输出:
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 3 entries, 0 to 2
# Data columns (total 3 columns):
# # Column Non-Null Count Dtype
# --- ------ -------------- -----
# 0 姓名 3 non-null object
# 1 年龄 3 non-null int64
# 2 成绩 3 non-null int64
# dtypes: int64(2), object(1)
# memory usage: 200.0+ bytes
# 查看数值列统计描述(仅对数值列生效)
print(df.describe())
# 输出:
# 年龄 成绩
# count 3.000000 3.000000
# mean 19.000000 90.000000
# std 1.000000 2.581989
# min 18.000000 85.000000
# 25% 18.500000 87.500000
# 50% 19.000000 90.000000
# 75% 19.500000 92.500000
# max 20.000000 95.000000
# 查看列名和行索引
print("列名:", df.columns) # 输出:列名: Index(['姓名', '年龄', '成绩'], dtype='object')
print("行索引:", df.index) # 输出:行索引: RangeIndex(start=0, stop=3, step=1)
三、修改数据:让数据“为我所用”¶
掌握数据的“增删改查”,核心是定位数据并修改,以下是常用操作。
1. 修改单个/多个单元格的值¶
用 loc[行标签, 列名] 或 iloc[行位置, 列位置] 定位后赋值。
- loc:通过标签定位(如行标签、列名)
- iloc:通过位置定位(从 0 开始的整数)
示例代码:
# 修改第一行“年龄”列的值(用 loc 标签定位)
df.loc[0, "年龄"] = 17
print(df)
# 输出:
# 姓名 年龄 成绩
# 0 小明 17 90
# 1 小红 19 85
# 2 小刚 20 95
# 修改第三行“成绩”列的值(用 iloc 位置定位,行位置 2,列位置 2)
df.iloc[2, 2] = 96
print(df)
# 输出:
# 姓名 年龄 成绩
# 0 小明 17 90
# 1 小红 19 85
# 2 小刚 20 96
2. 新增列(添加新数据列)¶
直接赋值给新列名即可,支持基于现有列计算。
示例代码:
# 新增“班级”列(直接赋值)
df["班级"] = "一班"
print(df)
# 输出:
# 姓名 年龄 成绩 班级
# 0 小明 17 90 一班
# 1 小红 19 85 一班
# 2 小刚 20 96 一班
# 新增“总分”列(基于现有数值列计算)
df["总分"] = df["成绩"] + 10 # 假设满分 100 分,总分=成绩+10
print(df)
# 输出:
# 姓名 年龄 成绩 班级 总分
# 0 小明 17 90 一班 100
# 1 小红 19 85 一班 95
# 2 小刚 20 96 一班 106
3. 删除列(删除不需要的列)¶
用 drop() 方法,axis=1 表示删除列,inplace=True 直接修改原数据。
示例代码:
# 删除“总分”列(axis=1 表示列,inplace=True 直接修改原 df)
df.drop("总分", axis=1, inplace=True)
print(df)
# 输出:
# 姓名 年龄 成绩 班级
# 0 小明 17 90 一班
# 1 小红 19 85 一班
# 2 小刚 20 96 一班
4. 修改行/列索引(调整标签)¶
直接赋值给 index 或 columns,或用 rename() 重命名。
示例代码:
# 修改行索引(原索引是 0,1,2 → 改为“row1”, “row2”, “row3”)
df.index = ["row1", "row2", "row3"]
print(df)
# 输出:
# 姓名 年龄 成绩 班级
# row1 小明 17 90 一班
# row2 小红 19 85 一班
# row3 小刚 20 96 一班
# 重命名列名(用 rename 方法,inplace=True 直接修改)
df.rename(columns={"班级": "班级名称"}, inplace=True)
print(df)
# 输出:
# 姓名 年龄 成绩 班级名称
# row1 小明 17 90 一班
# row2 小红 19 85 一班
# row3 小刚 20 96 一班
总结¶
通过本文,我们学习了 pandas 数据处理的基础操作:
- 创建数据:用 Series 和 DataFrame 构建一维/二维数据
- 查看数据:通过 head/tail/info/describe 快速了解数据特征
- 修改数据:用 loc/iloc 定位修改、新增/删除列、调整索引
pandas 操作的核心是“定位数据”,记住 loc(标签)和 iloc(位置)的区别,多练习就能熟练掌握!如果需要更复杂的操作(如分组、合并),可以后续深入学习。现在就动手尝试吧~