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

目录
  • 一、查询操作
    • 元素的查询
  • 二、修改操作
    • 行列索引的修改
    • 元素值的修改
  • 三、行和列的删除操作

一、查询操作

可以使用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

结果输出如下:

元素的查询

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参数修改列索引,

具体使用方法如下:

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

结果输出如下:

参数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

输出结果如下:

三、行和列的删除操作

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

到此这篇关于Python数据分析之 Pandas Dataframe修改和删除及查询操作的文章就介绍到这了,更多相关Pandas Dataframe修改和删除内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python pandas分割DataFrame中的字符串及元组的方法实现

    目录 1.使用str.split()方法 2.使用join()与split()方法结合 3.使用apply方法分割元组 1.使用str.split()方法 可以使用pandas 内置的 str.split() 方法实现分割字符串类型的数据,并将分割结果写入DataFrame中,以表格形式呈现. 语法: Series.str.split(pat=None, n=-1, expand=False) 其中,pat是字符串或正则表达式,n是一个整数数字,默认为-1.为0或-1时即为最大次数的分割.其他数

  • python pandas dataframe 去重函数的具体使用

    今天笔者想对pandas中的行进行去重操作,找了好久,才找到相关的函数 先看一个小例子 from pandas import Series, DataFrame data = DataFrame({'k': [1, 1, 2, 2]}) print data IsDuplicated = data.duplicated() print IsDuplicated print type(IsDuplicated) data = data.drop_duplicates() print data 执行

  • Python数据分析之 Pandas Dataframe合并和去重操作

    目录 一.之 Pandas Dataframe合并 二.去重操作 一.之 Pandas Dataframe合并 在数据分析中,避免不了要从多个数据集中取数据,那就避免不了要进行数据的合并,这篇文章就来介绍一下 Dataframe 对象的合并操作. Pandas 提供了merge()方法来进行合并操作,使用语法如下: pd.merge(left, right, how="inner", on=None, left_on=None, right_on=None, left_index=Fa

  • Python数据分析之 Pandas Dataframe应用自定义

    目录 前言: 应用函数 apply 方法 applymap 方法 前言: 在进行数据分析时,难免需要对数据集应用一些我们自定义的一些函数,或者其他库的函数,得到我们想要的数据,这种情况下,可能大家第一时间想到的是使用for循环遍历Dataframe对象,取到指定行/列的数据再进行自定义函数的应用,当然这种方法完全可以实现,但是效率不高,接下来就来介绍一下在Pandas中如何对数据集高效的进行自定义函数的应用. 应用函数 apply 方法 apply()函数是一个自定义函数作用于某一行或几行,或者

  • Python数据分析Pandas Dataframe排序操作

    目录 1.索引的排序 2.值的排序 前言: 数据的排序是比较常用的操作,DataFrame 的排序分为两种,一种是对索引进行排序,另一种是对值进行排序,接下来就分别介绍一下. 1.索引的排序 DataFrame 提供了sort_index()方法来进行索引的排序,通过axis参数指定对行索引排序还是对列索引排序,默认为0,表示对行索引排序,设置为1表示对列索引进行排序:ascending参数指定升序还是降序,默认为True表示升序,设置为False表示降序, 具体使用方法如下: 对行索引进行降序

  • python pandas.DataFrame.loc函数使用详解

    官方函数 DataFrame.loc Access a group of rows and columns by label(s) or a boolean array. .loc[] is primarily label based, but may also be used with a boolean array. # 可以使用label值,但是也可以使用布尔值 Allowed inputs are: # 可以接受单个的label,多个label的列表,多个label的切片 A singl

  • Python数据分析之 Pandas Dataframe条件筛选遍历详情

    目录 一.条件筛选 二.Dataframe数据遍历 for...in...语句 iteritems()方法 iterrows()方法 itertuples()方法 一.条件筛选 查询Pandas Dataframe数据时,经常会筛选出符合条件的数据,接下来介绍一下具体的使用方式. 示例Dataframe如下: 单条件筛选,例如查询gender为woman的数据: df[df["gender"]=="woman"] # 或 df.loc[df["gender

  • Python pandas.DataFrame 找出有空值的行

    0.摘要 pandas中DataFrame类型中,找出所有有空值的行,可以使用.isnull()方法和.any()方法. 1.找出含有空值的行 方法:DataFrame[DataFrame.isnull().T.any()] 其中,isnull()能够判断数据中元素是否为空值:T为转置:any()判断该行是否有空值. import pandas as pd import numpy as np n = np.arange(20, dtype=float).reshape(5,4) n[2,3]

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

    目录 一.查询操作 元素的查询 二.修改操作 行列索引的修改 元素值的修改 三.行和列的删除操作 一.查询操作 可以使用Dataframe的index属性和columns属性获取行.列索引. import pandas as pd data = {"name": ["Alice", "Bob", "Cindy", "David"], "age": [25, 23, 28, 24], &q

  • Python数据分析模块pandas用法详解

    本文实例讲述了Python数据分析模块pandas用法.分享给大家供大家参考,具体如下: 一 介绍 pandas(Python Data Analysis Library)是基于numpy的数据分析模块,提供了大量标准数据模型和高效操作大型数据集所需要的工具,可以说pandas是使得Python能够成为高效且强大的数据分析环境的重要因素之一. pandas主要提供了3种数据结构: 1)Series,带标签的一维数组. 2)DataFrame,带标签且大小可变的二维表格结构. 3)Panel,带标

  • 基于Python数据分析之pandas统计分析

    pandas模块为我们提供了非常多的描述性统计分析的指标函数,如总和.均值.最小值.最大值等,我们来具体看看这些函数: 1.随机生成三组数据 import numpy as np import pandas as pd np.random.seed(1234) d1 = pd.Series(2*np.random.normal(size = 100)+3) d2 = np.random.f(2,4,size = 100) d3 = np.random.randint(1,100,size = 1

  • Python数据分析库pandas基本操作方法

    pandas是什么? 是它吗? ....很显然pandas没有这个家伙那么可爱.... 我们来看看pandas的官网是怎么来定义自己的: pandas is an open source, easy-to-use data structures and data analysis tools for the Python programming language. 很显然,pandas是python的一个非常强大的数据分析库! 让我们来学习一下它吧! 1.pandas序列 import nump

  • Python数据分析之pandas函数详解

    一.apply和applymap 1. 可直接使用NumPy的函数 示例代码: # Numpy ufunc 函数 df = pd.DataFrame(np.random.randn(5,4) - 1) print(df) print(np.abs(df)) 运行结果: 0         1         2         3 0 -0.062413  0.844813 -1.853721 -1.980717 1 -0.539628 -1.975173 -0.856597 -2.612406

  • Python数据分析之pandas比较操作

    一.比较运算符和比较方法 比较运算符用于判断是否相等和比较大小,Python中的比较运算符有==.!=.<.>.<=.>=六个,Pandas中也一样. 在Pandas中,DataFrame和Series还支持6个比较方法,详见下表. 方法 英文全称 用途 eq equal to 等于 ne not equal to 不等于 lt less than 小于 gt greater than 大于 le less than or equal to 小于等于 ge greater than

  • python实现在pandas.DataFrame添加一行

    实例如下所示: from pandas import * from random import * df = DataFrame(columns=('lib', 'qty1', 'qty2'))#生成空的pandas表 for i in range(5):#插入一行<span id="transmark" style="display:none;"></span> df.loc[i] = [randint(-1,1) for n in ran

随机推荐