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

Python 中的 Pandas(数据分析与处理)

Pandas 是 Python 中最受欢迎的数据处理库之一,其名字源自于“Panel Data”(面板数据)的缩写。它提供了三种主要的数据结构:Series , DataFrame Panel(在新版本已经被弃用)    


数据操作与基本技巧

  • 数据读取与加载:Pandas 支持从多种数据源加载数据,包括 CSV 文件、Excel 文件、SQL 数据库、JSON 文件等。使用 pd.read_csv()、pd.read_excel() 等函数可以方便地将数据加载到 DataFrame 中进行后续处理。
  • 数据探索与预览:通过 head()、tail()、info()、describe() 等方法可以快速查看数据的前几行、后几行、基本信息以及统计摘要。
  • 数据选择与过滤:使用行索引、列索引、布尔条件等方式选择感兴趣的数据子集。例如,通过 df[column_name] 或 df.loc[row_index, column_name] 可以选取指定的列或行。
  • 数据清洗与处理:处理缺失值、重复值、异常值等,使用 dropna()、fillna()、drop_duplicates()、replace() 等方法对数据进行清洗和处理,保证数据质量。
  • 数据重塑与转换:使用 pivot_table()、stack()、unstack() 等方法对数据进行重塑和转换,以满足不同的分析需求

高级数据分析与处理技巧

  • 数据统计与聚合:使用 groupby() 方法按照某些条件对数据进行分组,然后通过聚合函数如 sum()、mean()、count() 等进行统计计算。
  • 时间序列数据分析:对于时间序列数据,Pandas 提供了丰富的处理功能,包括日期范围生成、日期索引设置、时间重采样、滚动计算等,方便用户进行时间序列数据分析与预测。
  • 数据可视化:Pandas 结合 Matplotlib、Seaborn 等可视化库,可以方便地绘制折线图、柱状图、散点图等各种图表,直观展示数据的分布和趋势。
  • 高效计算与优化:Pandas 支持向量化操作,通过使用 NumPy 数组和 Pandas 的内置函数,可以实现高效的数据处理和计算。此外,还可以通过并行计算、内存优化等方式进一步提高计算效率

Series

类似于一维数组,由一组数据和与之相关的索引组成。每个元素都有对应的标签,可以通过标签进行索引和操作。    

1,创建Series

使用列表或数组创建Series:可以通过传递Python列表或NumPy数组来创建Series

import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])

使用字典创建Series:字典的键将成为Series的索引

data = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
s = pd.Series(data)

2,索引

# 使用位置索引:可以使用整数位置来访问Series中的元素
s[0]  # 访问第一个元素# 使用自定义索引:可以使用自定义的标签索引访问元素
s['a']  # 访问标签为'a'的元素

3,基本属性

values返回Series的数据部分(一个NumPy数组)

index  

返回Series的索引部分(一个Index对象)
dtype返回Series中的数据类型

4,基本操作

# 算术操作:支持基本的算术运算,如加法、减法、乘法和除法
s1 + s2
s1 * 2# 索引与切片:可以使用位置索引或自定义索引进行索引和切片操作
s[1:3]  # 选择第2到第3个元素
s['a':'c']  # 选择标签从'a'到'c'的元素

5,数据对齐

当对两个Series进行操作时,Pandas会根据索引自动对齐数据

s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([4, 5, 6], index=['b', 'c', 'd'])
result = s1 + s2

6,其他

Pandas提供了多种方法处理缺失数据,如isnull()、fillna()等

可以使用apply()方法应用函数到Series的每个元素上

提供了一系列统计函数,如sum()、mean()、max()等,用于计算Series的统计信息

Series对象提供了plot()方法,可以直接绘制数据的图表


DataFrame:

类似于电子表格或 SQL 数据库中的表格数据结构,由多个 Series 组成,每一列可以是不同的数据类型。DataFrame 提供了强大的数据操作和处理功能,适用于各种复杂的数据分析任务。 

1,创建DataFrame

通过传递字典创建:可以使用字典来创建DataFrame,其中字典的键将成为DataFrame的列标签

import pandas as pd
data = {'Name': ['zzz', 'xxx', 'ddd'],'Age': [25, 30, 35],'City': ['New York', 'Los Angeles', 'Shanghai']}
df = pd.DataFrame(data)

也可以通过读取外部数据创建:可以从文件(如CSV、Excel等)或数据库中读取数据创建DataFrame

2,基本属性

# shape:返回DataFrame的行数和列数
df.shape# columns:返回DataFrame的列标签
df.columns# index:返回DataFrame的行索引
df.index

3,索引与选择数据

# 使用列标签选择列:可以通过列标签直接选择DataFrame中的列
df['Name']# 使用loc和iloc选择行和列
df.loc[0]  # 选择索引为0的行
df.loc[:, 'Age']  # 选择名为'Age'的列的所有行
df.iloc[0]  # 使用整数位置选择行# 使用布尔索引进行条件选择
df[df['Age'] > 25]

4,基本操作

# 添加列
df['Gender'] = ['Female', 'Male', 'Male']# 删除列
df.drop('City', axis=1, inplace=True)# 行列转置
df.T

5,数据排序

# 按列或行的值进行排序
df.sort_values(by='Age')

6,其他

处理缺失数据:可以使用dropna()删除包含缺失值的行或列,或使用fillna()填充缺失值。
处理重复数据:使用drop_duplicates()删除重复行

使用groupby()方法对数据进行分组并应用聚合函数

使用concat()、merge()或join()方法将多个DataFrame合并成一个

使用pivot_table()方法创建数据透视表

使用plot()方法进行数据可视化,例如绘制柱状图、折线图等

http://www.lryc.cn/news/376723.html

相关文章:

  • 【文档智能 RAG】RAG增强之路-智能文档解析关键技术难点及PDF解析工具PDFlux
  • 五大API接口:提升你的应用性能与用户体验
  • RabbitMQ实践——在Ubuntu上安装并启用管理后台
  • Ubuntu中防火墙的使用 和 开放 关闭 端口
  • ansible 模块进阶及变量
  • MYSQL数据库安装
  • Pycharm配置远程调试
  • 【Java面试】二十二、JVM篇(下):JVM参数调优与排查
  • 统计信号处理基础 习题解答10-17
  • 嵌套使用模板类
  • adb卸载系统应用
  • Rapidfuzz,一个高效的 Python 模糊匹配神器
  • 【猫狗分类】Pytorch VGG16 实现猫狗分类1-数据清洗+制作标签文件
  • 磁盘管理 磁盘介绍 MBR
  • JSON响应中提取特定的信息——6.14山大软院项目实训2
  • 【C++高阶】高效搜索的秘密:深入解析搜索二叉树
  • 《软件定义安全》之七:SDN安全案例
  • java语言his系统医保接口 云HIS系统首页功能实现springboot框架+Saas模式 his系统项目源码
  • 使用vscode插件du-i18n处理前端项目国际化翻译多语言
  • 双系统下,如何隐藏另一个系统分区?
  • 电脑意外出现user32.dll丢失的八种修复方法,有效解决user32.dll文件丢失
  • CUDA系列-Kernel Launch-8
  • # 消息中间件 RocketMQ 高级功能和源码分析(四)
  • 如何通过数据库与AI实现以图搜图?OceanBase向量功能详解
  • Kafka内外网分流配置listeners和advertised.listeners
  • Linux系统编程——网络编程
  • 信息安全技术基础知识-经典题目
  • nextjs(持续学习中)
  • 数据预处理与特征工程、过拟合与欠拟合
  • 甲辰年五月十四风雨思