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

学习 Pandas 库:Series 与 DataFrame 核心操作指南

目录

一、Series:一维数据结构

1. 创建 Series

2. Series 的属性

3. Series 的查询操作

4. Series 的修改与删除

5. 重置索引

二、DataFrame:二维数据结构

1. 创建 DataFrame

2. DataFrame 的属性

3. DataFrame 的查询操作

(1)直接访问

(2)loc 方法(标签索引)

(3)iloc 方法(位置索引)

4. DataFrame 的修改操作

(1)修改行列名

(2)增加行列

(3)值替换

(4)排序

5. DataFrame 的删除操作


Pandas 是 Python 中用于数据处理和分析的重要库,它提供了两种核心数据结构:Series 和 DataFrame。本文将基于实际代码示例,详细介绍这两种数据结构的创建与常用操作。

一、Series:一维数据结构

Series 可以看作是竖起来的列表,它由一组数据和对应的索引组成。

1. 创建 Series

创建 Series 的基本方式有两种:使用列表创建和使用字典创建。

import pandas as pd# 1. 使用列表创建,默认索引为0,1,2...
s_1 = pd.Series([1,2,3,4,5])# 2. 自定义索引
s_2 = pd.Series([1,2,3,4,5], index=['a', 'b', 'c', 'd', 'e'])# 3. 使用字典创建(字典的键会成为索引)
dic_1 = {"name1": "Peter", "name2":"tim", "name3":"rose"}
s_4 = pd.Series(dic_1)

2. Series 的属性

每个 Series 都有几个重要属性:

# 获取索引
s_1.index# 获取值(返回numpy数组)
s_1.values

3. Series 的查询操作

Series 的查询主要有两种方式:通过标签访问和通过位置索引访问。

# 通过标签访问
print(s_1['d'])               # 访问单个元素
print(s_1['a':'d'])           # 访问切片(包含结束标签)
print(s_1[['a', 'd']])        # 访问多个不连续元素# 通过位置索引访问
print(s_2[2])                 # 访问单个元素
print(s_2[0:2])               # 访问切片(不包含结束位置)
print(s_2[[0, 2]])            # 访问多个不连续元素

4. Series 的修改与删除

# 修改元素
s_2[0] = 'Peter'# 删除元素(返回新的Series,不修改原对象)
s_1 = s_1.drop('a')# 检查值是否存在
print('jim' != s_2.values)

5. 重置索引

s_4.index = range(0, len(s_4))  # 将索引重置为0,1,2...

二、DataFrame:二维数据结构

DataFrame 可以看作是 Excel 表格,由多个 Series 按列拼接而成,包含行索引和列名。

1. 创建 DataFrame

import pandas as pd# 从字典创建
df_1 = pd.DataFrame({'age':[10,11,12],'name':['tim', 'tom', 'rose'],'income':[100,200,300]
}, index=['person1', 'person2', 'person3'])  # 自定义行索引

2. DataFrame 的属性

# 获取行索引
df_1.index# 获取列名
df_1.columns# 获取值(返回二维numpy数组)
df_1.values

3. DataFrame 的查询操作

DataFrame 提供了多种查询方式,常用的有三种:

(1)直接访问

# 访问某列
print(df.name)
print(df['name'])# 访问某些列
print(df[['age', 'name']])# 访问行(切片方式)
print(df[0:2])

(2)loc 方法(标签索引)

# 访问某个值
print(df.loc['person1', 'name'])# 访问某列
print(df.loc[:,'B'])# 访问某些列
print(df.loc['20180103':,['B', 'D']])# 访问某行
print(df.loc['20180101', :])# 访问某些行
print(df.loc['20180103':,:])

(3)iloc 方法(位置索引)

# 获取某个数据
print(df.iloc[1,2])# 获取某列
print(df.iloc[:,2])# 获取某几列
print(df.iloc[:,[1,3]])# 获取某行
print(df.iloc[1,:])# 获取某些行
print(df.iloc[[1,2,4],:])

4. DataFrame 的修改操作

(1)修改行列名

# 修改列名
df.columns = range(0, len(df.columns))# 修改行名
df.index = range(0, len(df.index))

(2)增加行列

# 增加一列
df['pay'] = [20, 30, 40]# 增加一行
df.loc['person4', ['age', 'name', 'income']] = [20, 'kitty', 200]

(3)值替换

# 替换性别列的值
df['gender'] = df['gender'].replace(['m', 'f'], ['male', 'female'])

(4)排序

# 按年龄升序排序
df = df.sort_values(by=['age'])# 按年龄降序排序
df = df.sort_values(by=['age'], ascending=False)

5. DataFrame 的删除操作

# 删除列(直接在原数据上操作)
del df['age']# 删除列(返回新数据,不修改原数据)
data = df.drop('name', axis=1, inplace=False)# 删除行(在原数据上操作)
df.drop('person3', axis=0, inplace=True)
http://www.dtcms.com/a/294909.html

相关文章:

  • c语言:预处理详解
  • CRMEB 单商户PRO多商户通用去版权教程
  • 二叉树解析
  • 51c大模型~合集158
  • RockyLinux 9.6 解决删除home后无法开机问题
  • 视觉BPE统一多模态理解-北大
  • Python+大模型 day03
  • 面试实战,问题四,介绍一下dubbo框架,如何回答
  • 河南萌新联赛2025第二场-河南农业大学
  • 解决uniapp 使用uview生成小程序包太大无法上传的问题
  • 亚马逊广告优化技巧:如何减少预算浪费
  • Tang Prime 20K板I2S输入输出例程
  • lumerical——光纤布拉格光栅(Fiber Bragg gratings)
  • AI驱动攻防升级,API安全走到关键档口
  • MyBatis整合SpringBoot终极指南
  • 设备维修记录可追溯:管理系统选型指南
  • ESP32-S3 小电视学习笔记2:Arduino开发环境搭建(垃圾)
  • PyTorch深度学习入门记录2
  • sql注入171到185
  • 使用Qemu模拟Arm处理器,运行Linux系统
  • 做了个震动APP
  • 学生信息管理系统 - HTML实现增删改查
  • odoo欧度小程序——添加用户
  • 面试150 合并K个升序链表
  • 智能制造基础-全面质量管理(TQM)
  • 嵌入式学习-土堆目标检测(4)-day28
  • iview表单验证一直提示为空的几个原因?
  • 1.C语言和其关键字的一个简单介绍
  • Spring事务注解详解:确保你的应用数据的一致性
  • 解决BAPI_ACC_DOCUMENT_POST 功能范围输入不生效问题