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 中高效地处理和分析数据。

相关推荐
咖啡八杯42 分钟前
GoF设计模式——解释器模式
java·后端·spring·设计模式
掘金码甲哥1 小时前
这块终端神器, 必须吹爆!
后端
糖果店的幽灵1 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
Csvn2 小时前
📊 SQL 入门 Day 8:集合操作 — 用 SQL 做数学里的"并交差"
后端·sql
CCPC不拿奖不改名3 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
kyriewen4 小时前
我扒了最近的前端面经——2026年面试不背八股文了,考这5样
前端·面试·ai编程
码事漫谈4 小时前
告别数据孤岛与AI“水土不服”:金仓多模融合时序库如何让数据真正服务于业务
后端
IT_陈寒5 小时前
Redis的持久化配置把我坑惨了:你以为数据安全了?
前端·人工智能·后端
星栈5 小时前
Node 接口该写同步还是异步?
后端·node.js
红烧大青虫5 小时前
HarmonyOS应用开发实战:小事记 - UIAbility 的冷启动/热启动/后台启动三种场景与 launchParam 解析
后端·华为·harmonyos·鸿蒙系统