Python数据分析之 Pandas Dataframe修改和删除及查询操作

作者:tigeriaf 时间:2023-08-03 23:01:13 

一、查询操作

可以使用Dataframe的index属性和columns属性获取行、列索引。

import pandas as pd
data = {"name": ["Alice", "Bob", "Cindy", "David"], "age": [25, 23, 28, 24], "gender": ["woman", "man", "woman", "man"]}
df = pd.DataFrame(data)
print(df.index)
print(df.columns)
df

结果输出如下:

Python数据分析之 Pandas Dataframe修改和删除及查询操作

元素的查询

DataFrame 元素查询有一下几种查询方式:使用[]切片、loc方法、iloc方法、at方法、iat方法等,下面分别介绍一下。

使用[]切片:

和Series数据结果一样,Dataframe也支持使用[]进行切片,使用方式也类似,通过行、列的下标或名称进行指定位置元素的查询。

例如:

# 获取第0行数据
df[0:1]
# 获取第2-4行数据(不包括4)
df[2:4]
# 获取某一列
df.name  # df["name"]
# 获取某几列
df[["name", "gender"]]
# 获取指定行指定列
df[2:4][["name", "gender"]]

通过loc方法和iloc方法:

其中loc方法是以行索引的名称和列索引的名称作为参数使用,iloc方法是以行索引的位置和列索引的位置作为参数使用,具体使用方式如下:

# 获取某行
df.loc[1]
df.iloc[1]
# 获取多行
df.loc[1:3]
df.iloc[1:3]
# 获取某列
df.loc[:, "name"]
df.iloc[:, 0]
# 获取多列
df.loc[:, ["name","gender"]]
df.iloc[:, [0,2]]

除了上面这些, 这里有一点需要注意一下,就是使用loc方法行索引参数为区间时,区间前后都为闭区间;而iloc为前闭后开区间。

通过at方法和iat方法:

at和iat的使用方法与loc和iloc类似,不同的是,at和iat只能访问单个元素,不能访问多个元素,但是查询速度比loc和iloc更快一些,具体使用如下:

# 查询index为0列名为name的元素
df.at[0, "name"]
# 查询第2行第1列的元素
df.iat[2,1]

说完Dataframe的查询操作,这篇文章就来介绍一下Dataframe数据的修改及删除操作。

二、修改操作

行列索引的修改

Dataframe对象提供了rename()方法修改行索引、列索引,默认修改行索引,可以指定columns参数修改列索引,

具体使用方法如下:

Python数据分析之 Pandas Dataframe修改和删除及查询操作

# 修改指定行索引
df.rename({1:"one", 2:"two"}, inplace=True)
# 修改指定列索引
df.rename(columns={"city": "address"}, inplace=True)
df

结果输出如下:

Python数据分析之 Pandas Dataframe修改和删除及查询操作

参数inplace=True表示在原来的 DataFrame 上进行修改。

元素值的修改

上面查询操作说到说到可以通过loc、iloc、at、iat等方法获取指定位置的值,修改其实也是通过这些方法先指定某个位置,然后进行赋值即可修改,例如:

# 修改1-2行age和city列的数据
df.loc[1:2, ["age","city"]] = [["22", "北京"],["21", "济南"]]
# 修改gender列 man-->男
df.loc[df["gender"]=="man", "gender"] = "男"
df

输出结果如下:

Python数据分析之 Pandas Dataframe修改和删除及查询操作

三、行和列的删除操作

DataFrame提供了drop()方法进行行和列的删除操作。

具体用法和参数如下:

df.drop(labels=None, axis=0, index=None, columns=None, inplace=False)
  • labels:指定要删除的行或列,可以使用列表指定多个行/列索引

  • axis:取值为0和1,代表行和列,默认为0,表示要删除的是行,设置为1表示删除列

  • index:指定要删除的行,可以使用列表指定多个行索引

  • columns:指定要删除的列,同样可以使用列表指定多个列索引

  • inplace:默认为False,设置为True表示在原 DataFrame 上进行修改

具体通过代码看下:

# 删除单行
df.drop(4, inplace=True)
# 删除多行
df.drop([1,3], inplace=True)
# 删除多列
df.drop(["gender","city"], axis=1, inplace=True)  # 或 df.drop(columns=["genger","city"], inplace=True)
df

来源:https://juejin.cn/post/7086844811294015495

标签:Python,Pandas,Dataframe,修改,删除,查询
0
投稿

猜你喜欢

  • Go语言基于HTTP的内存缓存服务的实现

    2024-05-21 10:25:12
  • 浅析SpringBoot微服务中异步调用数据提交数据库的问题

    2024-01-16 06:07:06
  • 清除浮动新说

    2009-12-25 18:49:00
  • python对常见数据类型的遍历解析

    2022-01-18 21:24:28
  • 详解python异步编程之asyncio(百万并发)

    2022-05-09 04:44:12
  • python 实现图片上传接口开发 并生成可以访问的图片url

    2021-03-19 01:02:02
  • mysql 5.7更改数据库的数据存储位置的解决方法

    2024-01-21 11:56:43
  • golang通过mysql语句实现分页查询

    2024-01-23 13:30:03
  • Git 教程之基本操作详解

    2023-08-04 08:04:20
  • 记录一篇关于redux-saga的基本使用过程

    2023-07-15 16:43:19
  • python获取txt文件词向量过程详解

    2021-07-27 12:54:35
  • Python实现在线音乐播放器

    2021-08-24 04:29:12
  • Django展示可视化图表的多种方式

    2022-07-31 07:15:53
  • PyTorch搭建多项式回归模型(三)

    2022-09-04 00:43:49
  • node.js回调函数之阻塞调用与非阻塞调用

    2024-05-05 09:21:26
  • Python3 使用selenium插件爬取苏宁商家联系电话

    2023-12-20 01:39:57
  • Python学习之configparser模块的使用详解

    2022-07-21 23:21:25
  • SQL Server中row_number函数用法入门介绍

    2024-01-26 22:45:04
  • 详解Bootstrap按钮

    2023-07-02 05:24:44
  • javascript hasFocus使用实例

    2024-04-10 10:57:41
  • asp之家 网络编程 m.aspxhome.com