📜  Pandas DataFrame.iloc [](1)

📅  最后修改于: 2023-12-03 15:33:23.477000             🧑  作者: Mango

Pandas DataFrame.iloc []

Pandas是Python中非常有用的数据分析库。DataFrame.iloc []是在Pandas中的一个强大的函数,它能够使您能够对数据框进行切片和索引,以查看和选择所需的部分。

概述

Pandas 中,我们可以通过索引、标签和位置,来访问DataFrame的行和列。DataFrame.iloc []即为通过位置实现的访问与切片操作。

iloc []可以根据给定的整数位置从 DataFrame 中提取一个或多个值,这个位置是相对于整个数据框而言的,而不是相对于行标签或列标签。 这个函数与NumPy中的 ndarray作法类似。

语法

DataFrame.iloc[]的语法如下:

df.iloc[row_indexer,column_indexer]

其中,

  • row_indexer:必选参数,表示要访问的行位置,可为索引位置、整数位置或者布尔掩码
  • column_indexer:可选参数,表示要访问的列位置,同样可为索引位置、整数位置或者布尔掩码
范例

下面我们来看一个简单的例子,使用iloc[] 来选择数据框中的特定行和列。

例1
import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eric'],
        'age': [25, 45, 37, 19, 34],
        'city': ['Beijing', 'Shanghai', 'New York', 'London', 'San Francisco']}
df = pd.DataFrame(data)
print(df)
print('--------------------------------')
# 根据行位置来选,选取第2-4行
df_new = df.iloc[1:4]
print(df_new)

输出结果:

       name  age           city
0     Alice   25        Beijing
1       Bob   45       Shanghai
2   Charlie   37       New York
3     David   19         London
4      Eric   34  San Francisco
--------------------------------
      name  age      city
1      Bob   45  Shanghai
2  Charlie   37  New York
3    David   19    London

本例中,数据框中有5行和3列。我们使用iloc []选择第2-4个行(即索引为1到3)和所有列。我们看到,结果数据框中的行被正确选定。

例2

下面让我们来看一个复杂的例子:选择特定行和列。

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eric'],
              'age': [25, 45, 37, 19, 34],
              'city': ['Beijing', 'Shanghai', 'New York', 'London', 'San Francisco']}
df = pd.DataFrame(data)
print(df)
print('--------------------------------')
# 选择年龄(age)在25到37之间的数据,且包含列'name', 'age', 'city
df_new = df.loc[(df['age'] > 25) & (df['age'] < 37), ['name', 'age', 'city']]
print(df_new)

# 用iloc完成同样的任务
df_new2 = df.iloc[(df['age'] > 25) & (df['age'] < 37), [0, 1, 2]]
print(df_new2)

输出结果:

      name  age           city
0    Alice   25        Beijing
1      Bob   45       Shanghai
2  Charlie   37       New York
3    David   19         London
4     Eric   34  San Francisco
--------------------------------
     name  age          city
2  Charlie   37      New York
4     Eric   34  San Francisco
      name  age          city
2  Charlie   37      New York
4     Eric   34  San Francisco

在本例中,我们首先选择那些年龄在区间(25, 37)之间的记录,并选择其中的name, agecity列。我们看到,lociloc完成了相似的任务。

注意,iloc[]选择的是整数位置,因此我们需要将布尔掩码传递到它,而不是将它们设置为行和列标签。

小结

到此为止,您已经学会了如何使用Pandas DataFrame.iloc []函数来在Pandas中对数据框进行位置切片和访问。iloc [] 函数的强大功能使得对数据框行和列的选择变得非常容易,而且易于阅读!