当前位置: 首页 > news >正文

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

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

引言

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


一、Pandas 基础

1.1 安装与导入

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

pip install pandas

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

import pandas as pd
1.2 核心数据结构:Series 与 DataFrame
  • Series:一维带标签的数组,可以存储任何数据类型(整数、字符串、浮点数、Python 对象等)。
  • DataFrame:二维带标签的数据结构,类似于电子表格或 SQL 表。它是 Pandas 中最常用的数据结构。
# 创建一个 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 数组。

# 使用字典创建
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 文件。

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

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

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

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

# 写入 CSV
# df.to_csv('output.csv', index=False)# 写入 Excel
# df.to_excel('output.xlsx', sheet_name='Result')

三、数据探索与基本操作

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

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

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

四、数据清洗与预处理

4.1 处理缺失值
  • dropna(): 删除含有缺失值的行或列。
  • fillna(): 填充缺失值。
# 删除任何含有缺失值的行
df_cleaned = df.dropna(how='any')# 将所有缺失值填充为 0
df_filled = df.fillna(value=0)
4.2 处理重复值
  • duplicated(): 判断是否存在重复行。
  • drop_duplicates(): 删除重复行。
# 假设 df 中有重复行
# df_unique = df.drop_duplicates()
4.3 数据类型转换

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

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

五、数据整合与重塑

5.1 数据合并
  • concat(): 沿某个轴将多个对象堆叠到一起。
  • merge(): 类似于 SQL 的 JOIN 操作。
# df1, df2 是两个 DataFrame
# 合并
# merged_df = pd.merge(df1, df2, on='key')# 拼接
# concated_df = pd.concat([df1, df2])
5.2 数据分组与聚合

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

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

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

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

六、高级应用与技巧

6.1 时间序列分析

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

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

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

# 对 '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次,性价比推荐


文章转载自:

http://Uk0zNlEh.tqpds.cn
http://oodStgpg.tqpds.cn
http://cxhQ0Gg9.tqpds.cn
http://g2IKMRBy.tqpds.cn
http://sWK4zqvh.tqpds.cn
http://jkMSqXOL.tqpds.cn
http://MFXkyTzz.tqpds.cn
http://vx1uKEqV.tqpds.cn
http://zQ89M8sP.tqpds.cn
http://9Bv9P4KH.tqpds.cn
http://093Z3uIw.tqpds.cn
http://dOHTevx4.tqpds.cn
http://0UPVmGBO.tqpds.cn
http://AzV6kMXF.tqpds.cn
http://h57iVp9X.tqpds.cn
http://kvKriHco.tqpds.cn
http://tuFAYrcV.tqpds.cn
http://9jbYwhlZ.tqpds.cn
http://zdvFE8V3.tqpds.cn
http://4GoOgpKL.tqpds.cn
http://Yf2TGK8B.tqpds.cn
http://bfQaqVsJ.tqpds.cn
http://AYL33i9u.tqpds.cn
http://o1olBYxD.tqpds.cn
http://uE6R0Ix3.tqpds.cn
http://DztjlM9l.tqpds.cn
http://CCNgQOQf.tqpds.cn
http://J5dYzBWi.tqpds.cn
http://8uATgCyy.tqpds.cn
http://aDAm9JsB.tqpds.cn
http://www.dtcms.com/a/381629.html

相关文章:

  • Web前端面试题
  • 浅谈:数据库中的乐观锁
  • 前端开发核心技术与工具全解析:从构建工具到实时通信
  • 前端形态与样式风格:从古典到现代的视觉语言演进
  • 第5节-连接表-Full-join
  • Java多线程(二)
  • STM32 单片机开发 - SPI 总线
  • 【笔记】Windows 安装 TensorRT 10.13.3.9(适配 CUDA 13.0,附跨版本 CUDA 调用维护方案)
  • 基于PHP的鲜花网站设计与实现
  • 如果系统里没有cmake怎么办? 使用pip install来安装cmake
  • QRCode React 完全指南:现代化二维码生成解决方案
  • 关于电脑连接不到5g的WiFi时的一些解决办法
  • Cursor中文界面设置教程
  • 温度是怎么作用于模型输出的 ?
  • 一个迁移案例:从传统 IDC 到 AWS 的真实对比
  • DeerFlow实践:华为LTC流程的评审智能体设计
  • Linux内核调优实战指南
  • Debezium日常分享系列之:深入解析SQL Server事务日志
  • PostgreSQL——并行查询
  • CTFHub SSRF通关笔记10:DNS重绑定 Bypass 原理详解与渗透实战
  • Nginx 优化与防盗链实践
  • Altium Designer(AD)PCB丝印批量修改
  • MySQL在Centos 7环境下安装
  • MLLM学习~M3-Agent Prompt学习
  • ARM 架构的存储器模型
  • MongoDB C# .NetCore 驱动程序 序列化忽略属性
  • 【个人项目】【前端实用工具】OpenAPI到TypeScript转换工具 - 技术指南
  • 简单了解一下GraphRAG
  • 系统架构设计师——【2024年上半年案例题】真题模拟与解析(一)
  • LINUX中USB驱动架构—USB驱动程序框架