Pandas数据选取详解:df[], df.loc[], df.iloc[], df.ix[], df.at[], df.iat...

版权申诉
5星 · 超过95%的资源 5 下载量 159 浏览量 更新于2024-09-14 收藏 76KB PDF 举报
"Pandas数据选取方法详解" Pandas是Python中用于数据分析的重要库,它提供了多种数据选取的方法,使得数据操作变得简单高效。本文将深入探讨Pandas中的Dataframe数据结构,以及如何利用`df[]`、`df.loc[]`、`df.iloc[]`、`df.ix[]`、`df.at[]`和`df.iat[]`进行数据选取。 1. **行(列)选取(单维度选取):df[]** 使用`df[]`可以实现对DataFrame的行或列进行单维度选取。例如,如果想选取DataFrame的某一列,可以直接用列名或者列的索引来访问,如`df['name']`或`df['age']`。若要选取特定的行,可以提供行的索引,比如`df.loc['a':'c']`。需要注意的是,这种选取方式一次只能对行或列进行操作,不能同时进行多维度选取。 2. **区域选取(多维选取):df.loc[], df.iloc[], df.ix[]** - `df.loc[]`:基于标签的选取,允许同时选取行和列。例如,`df.loc['a':'c', 'age':'gender']`将选取行索引在'a'到'c'之间且列名在'age'到'gender'范围内的所有数据。 - `df.iloc[]`:基于位置的选取,适用于整数索引。例如,`df.iloc[0:3, 1:3]`选取前3行的第2列和第3列。 - `df.ix[]`:混合了标签和位置的选取,但自Pandas 0.20.0版本后已弃用,建议使用其他两种方法。 3. **单元格选取(点选取):df.at[], df.iat[]** - `df.at[]`:通过标签定位单个单元格。例如,`df.at['a', 'age']`返回行索引为'a',列名为'age'的单元格值。 - `df.iat[]`:通过位置定位单个单元格。例如,`df.iat[0, 1]`返回第一行第二列的值。 以下是一个例子,展示如何使用这些方法: ```python import pandas as pd import numpy as np data = {'name': ['Joe', 'Mike', 'Jack', 'Rose', 'David', 'Marry', 'Wansi', 'Sidy', 'Jason', 'Even'], 'age': [25, 32, 18, np.nan, 15, 20, 41, np.nan, 37, 32], 'gender': [1, 0, 1, 1, 0, 1, 0, 0, 1, 0], 'isMarried': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']} labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] df = pd.DataFrame(data, index=labels) # 行(列)选取 print(df['name']) # 区域选取 print(df.loc['a':'c', 'age':'gender']) # 单元格选取 print(df.at['a', 'age']) ``` 通过以上代码,我们可以看到如何灵活地选取DataFrame中的数据,无论是单个元素、一列数据还是特定的行或区域。了解并熟练掌握这些选取方法,将极大地提高数据处理的效率。在实际应用中,应根据具体需求选择最合适的选取方式。