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

Pandas 数据结构

andas是Python数据分析库,其核心数据结构为DataFrame和Series,这两种数据结构不仅提供了高效的数据处理能力,还支持丰富的数据操作功能。以下是关于Pandas数据结构及其基本操作的详细介绍:

一、Pandas数据结构

  1. Series
    • 定义:Series是一种一维数组结构,可以存储任何数据类型(整数、字符串、浮点数等),并允许在每个元素上关联标签(即索引)。
    • 组成:由索引(index)和值(values)两部分组成。索引用于标识数据点,而值则是数据点本身。
    • 创建:可以通过传入一个列表、NumPy数组、字典等创建Series对象,同时可以指定索引。
  2. DataFrame
    • 定义:DataFrame是一个二维表格型数据结构,可以理解为由多个Series组合而成,每一列可以看作一个Series。
    • 组成:具备行和列的索引,允许存储不同类型的列(如文本、数字等),非常适合用于处理具有复杂关系的数据集。
    • 创建:可以通过传入一个字典(字典的键为列名,值为列数据)、NumPy数组、另一个DataFrame等创建DataFrame对象。

二、Pandas基本操作

  1. 查看数据
    • 使用head()方法查看前N行数据(默认为前5行)。
    • 使用tail()方法查看后N行数据(默认为后5行)。
    • 使用info()方法查看DataFrame的列名、数据类型、非空值数量等基本信息。
    • 使用describe()方法查看DataFrame中数值列的描述性统计信息,如计数、平均值、标准差、最小值、最大值等。
  2. 选择数据
    • 通过列名选择单列或多列数据。
    • 通过位置索引(iloc)或标签索引(loc)选择单行或多行数据。
    • 根据条件选择数据,例如选择满足某个条件的行。
  3. 添加数据
    • 添加列:直接向DataFrame中添加一个新的列。
    • 添加行:使用loc或append方法向DataFrame中添加一行或多行数据。
  4. 删除数据
    • 删除列:使用drop方法并指定axis=1来删除指定的列。
    • 删除行:使用drop方法并指定axis=0来删除指定的行。
  5. 修改数据
    • 修改列的值:直接对DataFrame中的某一列进行赋值操作。
    • 修改行的值:使用loc或iloc方法定位到要修改的行,然后进行赋值操作。
  6. 数据排序
    • 使用sort_values()方法按照指定列的值进行排序。
    • 使用sort_index()方法按照索引进行排序。
  7. 数据去重
    • 使用drop_duplicates()方法去除DataFrame中的重复行。
  8. 数据合并
    • 使用merge()方法按照指定的键将两个DataFrame合并在一起。
    • 使用concat()方法将多个DataFrame沿着指定的轴(行或列)拼接在一起。
  9. 数据清洗
    • 处理缺失值:使用dropna()方法删除包含缺失值的行或列,或使用fillna()方法填充缺失值。
    • 处理重复数据:使用drop_duplicates()方法去除重复数据。
    • 数据类型转换:使用astype()方法将列的数据类型转换为指定的类型。

示例

以下是如何创建和操作Series和DataFrame的示例:

import pandas as pd

# 创建Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)

# 创建DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)

# 访问DataFrame中的数据
print(df['Age'])  # 访问'Age'列
print(df.loc['Alice'])  # 访问'Alice'的行

在这个示例中,我们首先导入了pandas库,并分别创建了一个Series对象和一个DataFrame对象。然后,我们打印了这两个对象的内容,并展示了如何访问DataFrame中的数据。


http://www.kler.cn/a/395527.html

相关文章:

  • 【CICD】CICD 持续集成与持续交付在测试中的应用
  • 操作系统实验:在linux下用c语言模拟进程调度算法程序
  • QT_CONFIG宏使用
  • 【Java Web】Ajax 介绍及 jQuery 实现
  • SkyWalking-安装
  • PyQt入门指南五十二 版本控制与协作开发
  • CCI3.0-HQ:用于预训练大型语言模型的高质量大规模中文数据集
  • pytorch中数据和模型都要部署在cuda上面
  • ctfshow-web入门-JWT(web345-web350)
  • 电动车租赁支付宝免押小程序开发方案php+uniapp
  • vue项目PC端和移动端实现在线预览pptx文件
  • YOLOv7-0.1部分代码阅读笔记-metrics.py
  • 三正科技笔试题
  • 【linux】centos7 换阿里云源
  • 调用 Xinference OpenAI接口时报错 Model not found in the model list, uid
  • 前端埋点、监控
  • 如何保证MySQL与Redis缓存的数据一致性?
  • PC上浏览器是如何查询DNS 缓存的呢?
  • 自建k8s集群,利用开源的GitLab、Jenkins和Harbor实现CI/CD和DevOps的过程回顾
  • Redis 概 述 和 安 装
  • C++初阶——stack
  • 服务器被挂马怎么办?——解决服务器被挂马的方法和步骤
  • 10款录屏工具个人使用感分享!!!!!!
  • 用MVVM设计模式提升WPF开发体验:分层架构与绑定实例解析
  • 深度学习之GAN应用
  • Springboot 整合 itext 实现PDF文件合并,识别图片则转成PDF拼接