Pandas DataFrame 入门教程

Pandas 是 Python 中用于数据操作和分析的强大工具。以下教程将涵盖 DataFrame 的常用函数和用法,帮助你快速上手。

1. 创建 DataFrame

1.1 使用字典创建 DataFrame

python 复制代码
import pandas as pd

# 使用字典创建 DataFrame
data = {
    '姓名': ['John', 'Alice', 'Bob'],
    '年龄': [28, 24, 22],
    '城市': ['纽约', '旧金山', '洛杉矶']
}
df = pd.DataFrame(data)

print(df)

输出结果:

text 复制代码
   姓名  年龄     城市
0   John    28     纽约
1  Alice    24   旧金山
2    Bob    22   洛杉矶

1.2 使用列表创建 DataFrame

python 复制代码
# 使用列表创建 DataFrame
data_list = [
    ['John', 28, '纽约'],
    ['Alice', 24, '旧金山'],
    ['Bob', 22, '洛杉矶']
]
df_list = pd.DataFrame(data_list, columns=['姓名', '年龄', '城市'])

print(df_list)

输出结果与上述相同。

1.3 使用 NumPy 数组创建 DataFrame

python 复制代码
import numpy as np

# 使用 NumPy 数组创建 DataFrame
array = np.array([
    ['John', 28, '纽约'],
    ['Alice', 24, '旧金山'],
    ['Bob', 22, '洛杉矶']
])
df_array = pd.DataFrame(array, columns=['姓名', '年龄', '城市'])

print(df_array)

输出结果与上述相同。

2. 访问和操作数据

2.1 访问行和列

  • 访问行 :使用 .loc[].iloc[]

    • .loc[] 根据标签访问。
    • .iloc[] 根据位置访问。
python 复制代码
# 访问第一行
print(df.loc[0])
# 访问第一列
print(df['姓名'])

2.2 添加和删除列

  • 添加列:直接赋值给新列名。
  • 删除列 :使用 .drop() 方法。
python 复制代码
# 添加新列
df['国家'] = '美国'

# 删除 '年龄' 列
df = df.drop('年龄', axis=1)

2.3 过滤数据

使用条件语句过滤数据。

python 复制代码
# 过滤年龄大于 25 的行(注意:此时年龄列已被删除)
# df['年龄'] = [28, 24, 22]  # 临时恢复年龄列以演示过滤
# filtered_df = df[df['年龄'] > 25]

3. 合并和连接 DataFrame

3.1 垂直合并

使用 .concat() 方法。

python 复制代码
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
combined_df = pd.concat([df1, df2])

print(combined_df)

输出结果:

css 复制代码
text
   A  B
0  1  3
1  2  4
0  5  7
1  6  8

3.2 基于共同列的合并

使用 .merge() 方法。

python 复制代码
df1 = pd.DataFrame({'ID': [1, 2], '姓名': ['John', 'Alice']})
df2 = pd.DataFrame({'ID': [1, 2], '年龄': [28, 24]})
merged_df = pd.merge(df1, df2, on='ID')

print(merged_df)

输出结果:

text 复制代码
   ID  姓名  年龄
0   1   John    28
1   2  Alice    24

4. 应用自定义函数

使用 .apply() 方法应用自定义函数。

python 复制代码
def triple_value(x):
    return x * 3

# 将 '年龄' 列的值乘以 3(注意:此时年龄列已被删除)
# df['年龄'] = [28, 24, 22]  # 临时恢复年龄列以演示
# df['三倍年龄'] = df['年龄'].apply(triple_value)

5. 分组和聚合

使用 .groupby() 方法分组数据,然后应用聚合函数。

python 复制代码
# 按 '城市' 分组,计算每组的平均年龄(注意:此时年龄列已被删除)
# df['年龄'] = [28, 24, 22]  # 临时恢复年龄列以演示
# grouped_df = df.groupby('城市')['年龄'].mean()

6. 处理缺失值

使用 .fillna().dropna() 方法处理缺失值。

python 复制代码
# 用平均值填充缺失值(注意:此时年龄列已被删除)
# df['年龄'] = [28, 24, None]  # 临时添加缺失值以演示
# df['年龄'].fillna(df['年龄'].mean(), inplace=True)

7. 数据转换

使用 .pivot_table().melt() 方法转换数据格式。

python 复制代码
# 将宽格式转换为长格式
df_long = pd.melt(df, id_vars=['姓名'], value_vars=['年龄', '城市'])
# 注意:此处需要恢复年龄列以演示

这些函数和用法为你提供了一个基础的框架,以便在 Pandas 中高效地处理和分析数据。

相关推荐
星辰徐哥6 小时前
Spring Boot 微服务架构设计与实现
spring boot·后端·微服务
星辰徐哥6 小时前
Spring Boot 数据导入导出与报表生成
spring boot·后端·ui
明夜之约6 小时前
Spring Boot 自动装配源码
java·spring boot·后端
Leaton Lee6 小时前
Spring Boot分层架构详解:从Controller到Service再到Mapper的完整流程
java·spring boot·后端·架构
Micro麦可乐6 小时前
Spring Boot 实战:从零设计一个短链系统(含完整代码与数据库设计)
数据库·spring boot·后端·哈希算法·雪花算法·短链系统
Jinkxs6 小时前
Resilience4j- 与 Spring Boot 快速集成:自动配置与基础注解使用
java·spring boot·后端
毕设源码_郑学姐6 小时前
计算机毕业设计springboot网络相册设计与实现 基于Spring Boot框架的在线相册管理系统开发与应用 Spring Boot驱动的网络影集设计与实践
spring boot·后端·课程设计
辣机小司6 小时前
【踩坑记录:Spring Boot 配置文件读取值不一致?警惕 YAML 的“八进制陷阱”与 SnakeYAML 版本之谜】
java·spring boot·后端·yaml·踩坑记录
码农阿豪6 小时前
从零到一:Spring Boot快速接入金仓数据库实战
数据库·spring boot·后端
追逐时光者6 小时前
一个基于 .NET 与 Avalonia 构建、面向 TrinityCore 的开源 WoW 数据库编辑器
后端·.net