Pandas 数据分析:从入门到精通的数据处理核心

Pandas 数据分析:从入门到精通的数据处理核心

引言

在数据科学领域,Python 之所以能够成为主流语言,离不开 Pandas 这个强大的数据处理库。Pandas 提供了高性能、易于使用的数据结构和数据分析工具,使数据清洗、处理、分析和可视化变得前所未有的高效。本文将带你从 Pandas 的基础入门,逐步深入到高级应用,助你掌握数据处理的核心技能。


一、Pandas 基础

1.1 安装与导入

首先,确保你的环境中已经安装了 Pandas。如果尚未安装,可以通过 pip 命令轻松完成。

python 复制代码
pip install pandas

在代码中,我们通常将 Pandas 导入并简写为 pd,这是一种社区约定。

python 复制代码
import pandas as pd
1.2 核心数据结构:Series 与 DataFrame
  • Series:一维带标签的数组,可以存储任何数据类型(整数、字符串、浮点数、Python 对象等)。
  • DataFrame:二维带标签的数据结构,类似于电子表格或 SQL 表。它是 Pandas 中最常用的数据结构。
python 复制代码
# 创建一个 Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

# 创建一个 DataFrame
dates = pd.date_range('20250101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
print(df)
1.3 创建 DataFrame 的几种方法

你可以通过多种方式创建 DataFrame,最常见的是使用字典或 NumPy 数组。

python 复制代码
# 使用字典创建
df2 = pd.DataFrame({
    'A': 1.,
    'B': pd.Timestamp('20250102'),
    'C': pd.Series(1, index=list(range(4)), dtype='float32'),
    'D': np.array([3] * 4, dtype='int32'),
    'E': pd.Categorical(["test", "train", "test", "train"]),
    'F': 'foo'
})
print(df2)

二、数据读取与写入

Pandas 支持多种文件格式,最常用的是 CSV 和 Excel。

2.1 读取 CSV 文件

使用 pd.read_csv() 函数可以轻松读取 CSV 文件。

python 复制代码
# 假设有一个名为 data.csv 的文件
# df_csv = pd.read_csv('data.csv')
# print(df_csv.head())
2.2 读取 Excel 文件

读取 Excel 文件同样简单,使用 pd.read_excel()

python 复制代码
# 假设有一个名为 data.xlsx 的文件
# df_excel = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# print(df_excel.head())
2.3 数据写入

处理完数据后,你可以将其保存为新的文件。

python 复制代码
# 写入 CSV
# df.to_csv('output.csv', index=False)

# 写入 Excel
# df.to_excel('output.xlsx', sheet_name='Result')

三、数据探索与基本操作

3.1 查看数据概览
  • head() / tail(): 查看前几行或后几行数据。
  • info(): 查看 DataFrame 的基本信息,如列名、数据类型、非空值数量等。
  • describe(): 对数值型列进行统计性描述,如均值、标准差、最大最小值等。
python 复制代码
print(df.head())
print(df.info())
print(df.describe())
32. 数据选择与切片
  • loc: 基于标签进行选择。
  • iloc: 基于整数位置进行选择。
python 复制代码
# 选择单列
print(df['A'])

# 使用 loc 选择
print(df.loc[dates[0]])

# 使用 iloc 选择
print(df.iloc[0:3, 0:2])
3.3 数据筛选与条件查询

你可以像操作 NumPy 数组一样,根据条件筛选数据。

python 复制代码
# 筛选出 A 列大于 0 的数据
print(df[df['A'] > 0])

# 筛选出值在特定范围的数据
print(df[df['A'].isin([1, 2, 3])])

四、数据清洗与预处理

4.1 处理缺失值
  • dropna(): 删除含有缺失值的行或列。
  • fillna(): 填充缺失值。
python 复制代码
# 删除任何含有缺失值的行
df_cleaned = df.dropna(how='any')

# 将所有缺失值填充为 0
df_filled = df.fillna(value=0)
4.2 处理重复值
  • duplicated(): 判断是否存在重复行。
  • drop_duplicates(): 删除重复行。
python 复制代码
# 假设 df 中有重复行
# df_unique = df.drop_duplicates()
4.3 数据类型转换

使用 astype() 方法可以转换列的数据类型。

python 复制代码
# 将 'A' 列转换为字符串类型
# df['A'] = df['A'].astype(str)

五、数据整合与重塑

5.1 数据合并
  • concat(): 沿某个轴将多个对象堆叠到一起。
  • merge(): 类似于 SQL 的 JOIN 操作。
python 复制代码
# df1, df2 是两个 DataFrame
# 合并
# merged_df = pd.merge(df1, df2, on='key')

# 拼接
# concated_df = pd.concat([df1, df2])
5.2 数据分组与聚合

groupby() 是 Pandas 最强大的功能之一,它遵循"分割-应用-合并"的原则。

python 复制代码
# 按 'A' 列分组并计算每组的均值
# print(df.groupby('A').mean())
53. 数据透视表

pivot_table() 可以帮助你轻松创建数据透视表。

python 复制代码
# 创建一个数据透视表
# pivot = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])

六、高级应用与技巧

6.1 时间序列分析

Pandas 在处理时间序列数据方面表现出色,提供了丰富的函数和方法。

python 复制代码
# 重采样为按月频率
# monthly_resampled = df.resample('M').sum()
6.2 apply 函数的应用

apply() 允许你对 DataFrame 的行或列应用一个函数。

python 复制代码
# 对 'A' 列的每个值应用一个自定义函数
# df['A_new'] = df['A'].apply(lambda x: x * 2)
6.3 性能优化技巧
  • 使用向量化操作:尽量避免使用循环,多使用 Pandas 内置的向量化函数。
  • 选择合适的数据类型 :例如,将字符串类型转换为 category 类型可以节省内存。
  • 使用 query() 方法 :对于大型 DataFrame,query() 方法通常比标准索引更快。

总结

Pandas 是数据分析 journey 中不可或缺的伙伴。从基础的数据结构到高级的数据整合与分析,掌握 Pandas 将极大地提升你的数据处理能力。希望本文能为你打开 Pandas 的大门,并在你的数据科学之路上助你一臂之力。


AI 产品与服务推荐

在探索数据科学的道路上,强大的 AI 工具能让你事半功倍。这里为你推荐几款优秀的 AI 产品与服务:

😳 0v0 AI 助手推荐、官网:https://0v0.pro

  • 🆓 开源模型全免费:Llama、Qwen、Deepseek 等
  • 😲 基础模型全免费:gpt-4o、o4-mini 、gpt-5-mini 等
  • ♾️ 对话真正无限制:不限时间、不限次数
  • 🫡 每周免费一个旗舰模型:本周免费:gpt-5 ,不限使用!

LLM AI API 推荐 🗨️

🖐️ 按量计算、官网:https://llm-all.pro

  • 😊 opneai 、cluade、genimi、gork 等模型:0.5:1刀 、官方 1 折
  • 🤓 国内模型 豆包、千问 、deepseek、kimi 等:2 - 6 折
  • ☺️ 除了以上模型外,还包含全球各类以上未列出的模型

👺 按次计算、官网:https://fackai.chat

  • 国内外全模型
  • 1 :100次,性价比推荐

相关推荐
kaomiao20253 小时前
空间信息与数字技术和传统GIS专业有何不同?
大数据·信息可视化·数据分析
嘀咕博客4 小时前
爱图表:镝数科技推出的智能数据可视化平台
科技·信息可视化·数据分析·ai工具
fanstuck12 小时前
基于大模型的个性化推荐系统实现探索与应用
大数据·人工智能·语言模型·数据挖掘
TG_yunshuguoji13 小时前
亚马逊云代理:亚马逊云怎么样进行大规模数据分析与处理?
数据挖掘·数据分析·云计算·aws
Y学院13 小时前
Python 数据分析:从新手到高手的“摸鱼”指南
python·数据分析
IT学长编程14 小时前
计算机毕业设计 基于大数据技术的医疗数据分析与研究 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·hadoop·机器学习·数据分析·毕业设计·毕业论文·医疗数据分析
IT学长编程16 小时前
计算机毕业设计 基于深度学习的酒店评论文本情感分析研究 Python毕业设计项目 Hadoop毕业设计选题 机器学习选题【附源码+文档报告+安装调试】
hadoop·python·深度学习·机器学习·数据分析·毕业设计·酒店评论文本情感分析
HaiLang_IT18 小时前
数据分析毕业论文题目推荐:精选选题清单
大数据·数据分析·毕业设计
人大博士的交易之路1 天前
今日行情明日机会——20250912
大数据·数据挖掘·数据分析·缠论·缠中说禅·涨停回马枪·道琼斯结构