详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)

yizhihongxing

详解pandas DataFrame的查询方法(loc, iloc, at, iat, ix的用法和区别)

在pandas中,DataFrame是一个非常常用的数据结构。DataFrame支持多种查询方法,常见的有loc、iloc、at、iat和ix这几种方法。本文将详细讲解这几种查询方法的用法和区别。

loc (location的缩写)

loc方法是一种基于标签(row label和column label)的查询方法。它的语法如下:

DataFrame.loc[row_indexer,column_indexer]

其中,row_indexer和column_indexer均为一组标签,可以是单个标签,也可以是标签的列表、切片、布尔数组等。例如,如果我们要查询DataFrame df中第1行和第3行,并且只需要显示"姓名"和"分数"这两列的内容,我们可以使用以下代码:

df.loc[[1,3],["姓名","分数"]]

loc方法的一些常见用法:

  • 单个标签查询:DataFrame.loc[标签],例如DataFrame.loc[2]表示查询DataFrame中第3行的所有列;
  • 多个标签查询:DataFrame.loc[[标签1,标签2,...], :],例如DataFrame.loc[[1,2],:]表示查询DataFrame中第1行和第2行的所有列;
  • 切片查询:DataFrame.loc[起始标签:结束标签, :],例如DataFrame.loc[2:4,:]表示查询DataFrame中第3~第5行的所有列;
  • 布尔数组查询:DataFrame.loc[布尔数组, :],例如DataFrame.loc[df["性别"]=="男",:]表示查询DataFrame中所有“性别”为“男”的行的所有列。

iloc(integer location的缩写)

iloc方法是一种基于位置的查询方法。它的语法如下:

DataFrame.iloc[row_indexer,column_indexer]

其中,row_indexer和column_indexer均为一组整数,可以是单个整数,也可以是整数的列表、切片、布尔数组等。例如,如果我们要查询DataFrame df中第1行和第3行,并且只需要显示"姓名"和"分数"这两列的内容,我们可以使用以下代码:

df.iloc[[0,2],[0,3]]

iloc方法的一些常见用法:

  • 单个整数查询:DataFrame.iloc[整数],例如DataFrame.iloc[2]表示查询DataFrame中第3行的所有列;
  • 多个整数查询:DataFrame.iloc[[整数1,整数2,...], :],例如DataFrame.iloc[[0,1],:]表示查询DataFrame中第1行和第2行的所有列;
  • 切片查询:DataFrame.iloc[起始整数:结束整数, :],例如DataFrame.iloc[2:4,:]表示查询DataFrame中第3~第5行的所有列;
  • 布尔数组查询:DataFrame.iloc[布尔数组, :],例如DataFrame.iloc[df["性别"]=="男",:]表示查询DataFrame中所有“性别”为“男”的行的所有列。

at

at方法是一种查询单个元素的方法,它的语法如下:

DataFrame.at[row_indexer,column_indexer]

其中,row_indexer和column_indexer均为单个标签,因此at方法只能用于查询单个元素。例如,如果我们要查询DataFrame df中第3行、第4列的元素,我们可以使用以下代码:

df.at[2,"分数"]

iat

iat方法是一种查询单个元素的方法,它的语法如下:

DataFrame.iloc[row_indexer,column_indexer]

其中,row_indexer和column_indexer均为单个整数,因此iat方法只能用于查询单个元素。例如,如果我们要查询DataFrame df中第2行、第3列的元素,我们可以使用以下代码:

df.iat[1,2]

ix

在pandas 0.20.0以上的版本中,ix方法已被弃用。如果要同时使用标签和位置进行查询,可以使用loc和iloc方法,并使用显式的“标签”或“位置”前缀来指示要使用的搜索方法。例如,以下代码与ix方法的效果相同:

df.loc[df.index[1:3], ["姓名","分数"]]
df.iloc[1:3,0:2]

示例说明

为了更好地理解这些方法的用法,我们将使用以下DataFrame df进行演示。df表示3名学生的学习情况,包括“姓名”、“性别”、“分数”三列数据。

df = pd.DataFrame({'姓名': ['张三', '李四', '王五'], '性别': ['男', '男', '女'], '分数': [80, 90, 85]})

示例1:

查询df中“姓名”为“李四”和“王五”的行信息(包含数据的所有列)。

df.loc[df["姓名"].isin(["李四","王五"]),:]
df.iloc[[1,2],:]

以上两种方法都可以实现相同的效果。在这种情况下,我们可以看出loc方法和iloc方法的查询方法基本一致。

示例2:

查询df中“姓名”为“张三”的学生成绩。

df.loc[df["姓名"]=="张三","分数"].values[0]
df.at[0,"分数"]

以上两种方法都可以实现相同的效果。可以看出,我们无法只使用loc方法查询单个元素,而at方法则可以直接查询。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Pandas 常用函数

    那么下面我来详细讲解Pandas常用函数的完整攻略,包含一些实例说明。 一、Pandas概述 Pandas是一个基于NumPy的Python数据分析库,可用于大量数据处理任务,例如合并、切片、筛选、聚合等数据处理。它具有以下优点: 提供了灵活的数据结构DataFrame和Series,方便数据操作; 可以高效地处理大型数据集; 可以自动对齐数据; 可以快速处…

    python-answer 2023年3月27日
    00
  • python groupby 函数 as_index详解

    当我们需要对一个 pandas 数据框按其中某个列进行分组,并对分组后的结果进行某些操作时,可以使用 groupby 函数。而在 groupby 函数中,as_index 参数指定分组后的结果是否要以分组列作为索引,以及是否简化结果,实现不同维度的 groupby 操作。本文将详细讲解 as_index 参数的作用和使用方法,以及示例说明。 1. as_in…

    python 2023年5月14日
    00
  • Python3 pandas.concat的用法说明

    Python3 pandas.concat的用法说明 简介 pandas是数据处理的重要工具,其中concat方法可以合并两个或多个数据框(DataFrame),具体实现请参考pandas官方文档。 语法 pandas.concat(objs, axis=0, join=’outer’, ignore_index=False, keys=None, leve…

    python 2023年5月14日
    00
  • 如何访问Pandas系列中的最后一个元素

    要访问最后一个元素,我们可以使用Pandas中提供的.iloc()方法进行操作。 步骤如下: 1.首先导入Pandas库: import pandas as pd 2.创建一个Pandas Series对象,并打印输出: data = pd.Series([1, 2, 3, 4, 5]) print(data) 输出: 0 1 1 2 2 3 3 4 4 5…

    python-answer 2023年3月27日
    00
  • pandas map(),apply(),applymap()区别解析

    下面是对 “pandas map(), apply(), applymap() 区别解析” 的详细讲解: 1. pandas map(), apply() 和 applymap() 的基本说明 这三个函数都是 pandas 中常用的数据处理函数,它们的主要区别在于: map() 函数是用于对 pandas 中的 Series 进行元素级传递, 对于 Data…

    python 2023年5月14日
    00
  • Python Panda中索引和选择 series 的数据

    Python Panda是常用的数据分析和数据处理工具,其中索引和选择series的数据是其中主要的操作之一。本文将详细讲解Python Panda中索引和选择series的数据的完整攻略,包括常用的索引和选择方法以及示例说明。 一、Pandas Series的创建 在Pandas中,Series可以通过以下方法创建: import pandas as pd…

    python 2023年5月14日
    00
  • 浅析pandas随机排列与随机抽样

    浅析pandas随机排列与随机抽样 1. pandas随机排列 pandas提供了一个sample()方法来对DataFrame和Series进行随机排列。sample()方法接受一个整数参数n,表示随机抽取的数量,默认为1,也可以为float类型,表示百分比。以下示例展示如何对DataFrame进行随机排列: import pandas as pd df …

    python 2023年5月14日
    00
  • pandas 查询函数query的用法说明

    下面是关于pandas查询函数query的用法说明的完整攻略。 1. 简介 Pandas是一种数据处理工具,在数据处理的过程中,经常需要进行数据筛选,查询等操作。Pandas提供了一个强大的查询函数query,可以帮助我们更方便地进行数据查询和筛选操作。 2. query函数的基本语法 query函数的基本语法为: DataFrame.query(expr,…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部