📅  最后修改于: 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[]
来选择数据框中的特定行和列。
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)和所有列。我们看到,结果数据框中的行被正确选定。
下面让我们来看一个复杂的例子:选择特定行和列。
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
, age
和city
列。我们看到,loc
和iloc
完成了相似的任务。
注意,iloc[]
选择的是整数位置,因此我们需要将布尔掩码传递到它,而不是将它们设置为行和列标签。
到此为止,您已经学会了如何使用Pandas DataFrame.iloc []
函数来在Pandas
中对数据框进行位置切片和访问。iloc []
函数的强大功能使得对数据框行和列的选择变得非常容易,而且易于阅读!