当前位置: 首页> 娱乐> 影视 > pandas数据分析(3)

pandas数据分析(3)

时间:2025/7/16 5:58:14来源:https://blog.csdn.net/qq_42797317/article/details/140076069 浏览次数:0次

使用标签选取数据

使用loc(location)属性指定想要获取的行和列:

df.loc[row_selection, column_selection]

loc支持切片语法,因此可以使用冒号来选取所有的行或者列。

编号选择返回的数据类型示例
示例1单个值标量df.loc[1001, "country"]
示例2一列(一维)Seriesdf.loc[:, "country"]
示例3一列(二维)DataFramedf.loc[:, ["country"]]
示例4多列DataFramedf.loc[:, ["country", "age"]]
示例5列区间DataFramedf.loc[:, "name":"country"]
示例6一行(一维)Seriesdf.loc[1001, :]
示例7一行(二维)DataFramedf.loc[[1001], :]
示例8多行DataFramedf.loc[[1003, 1001], :]
示例9行区间DataFramedf.loc[1001:1002, :]

首先构造示例数据:

示例1结果:

 示例2结果:

示例3结果:

示例4结果:

示例5结果:

示例6结果:

示例7结果:

示例8结果:

示例9结果:

标签切片是闭区间:和Python内置的切片语法以及pandas的其他地方不同,在使用标签切片时,标签的区间包含区间的首尾的两个标签 。

DataFrame(无论是一列还是多列)与Series之间是有区别的。即使只包含一列,DataFrame也是二维的数据结构,而Series永远是一维的。DataFrame和Series都有索引,但是只有DataFrame由列标题。当选取一列生成Series时,列标题就变成了Series的名称。

列选择的简化

除了写成

df.loc[:, columns_selection]

还可以写成

df[column_selection]

通过位置选取数据

需要使用iloc(integer location整数位置)属性。在使用切片时,iloc使用的是标准的半开半闭区间。(下列示例中所有示例结果与上文中对应编号示例结果一致)

编号选择返回的数据类型示例
示例1单个值标量df.iloc[0,2]
示例2一列(一维)Seriesdf.iloc[:, 2]
示例3一列(二维)DataFramedf.iloc[:, [2]]
示例4多列DataFramedf.iloc[:, [2, 1]]
示例5列区间DataFramedf.iloc[:, :3]
示例6一行(一维)Seriesdf.iloc[0, :]
示例7一行(二维)DataFramedf.iloc[[0], :]
示例8多行DataFramedf.iloc[[3, 0], :]
示例9行区间DataFramedf.iloc[0:3, :]

 使用布尔索引选取数据

        布尔索引是借助只包含True或False的Series或DataFrame来选取一个DataFrame的子集。布尔Series可以用来选取DataFrame的特定行和列,布尔DataFrame则用来选取整个DataFrame中的某些值。布尔索引最常见的用例是用来筛选DataFrame的行。

使用布尔索引筛选上述数据中,age在20以下,country为China的人:

筛选索引大于1002的人:

DataFrame中无法使用Python的布尔运算符,and、or、not分别对应的是&、|、~ 

        Python的基本数据结构可以使用in运算符判断是否包含某些对象,如果要在Series中进行类似操作,需要使用isin方法。如下筛选来自China和Germany的人:

         上述例子中是为loc提供一个布尔Series作为参数,不过DataFrame还提供了一种特殊语法,可以不使用loc的情况下传递一整个布尔DataFrame作为参数:

df[boolean_df]

在DataFrame只包含数字时这种语法很有用。当提供一个布尔DataFrame作为参考数时,返回的DataFrame会在原DataFrame的基础上,把对应着False的地方变成NaN。布尔值的这种用法经常被用来排除某些值。

使用MultiIndex选取数据

        MultiIndex是一种多级索引。可以将数据按层次分组,这样就可以方便的访问DataFrame的子集。这里将continent和country一起设置为df这个DataFrame的索引:

 通过多级索引选取数据需要提供一个元组作为参数:

也可以选择性的重置一部分MultiIndex,可以为reset_index提供索引级别的参数。索引级别从左至右从0开始:

关键字:pandas数据分析(3)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: