Pandas 如何按位置切片Pandas DataFrame
在本文中,我们将介绍如何使用Pandas按位置切片DataFrame。使用切片方法可从DataFrame中选择一部分数据进行处理和操作。假设我们有以下的DataFrame示例:
Name Age Address Score
0 Amy 20 BJ 80
1 Bob 22 GZ 85
2 Carl 25 SH 90
3 Dave 30 GZ 92
4 Eva 25 BJ 95
我们希望选取前三行数据来进行计算。这时我们就可以使用Python的切片方法来选取数据。下面是几种对DataFrame进行位置切片的方法。
阅读更多:Pandas 教程
使用 .iloc 方法
.iloc
方法可以通过行号和列号对DataFrame的内容进行切片。该方法类似于Python中的原生列表切片方法。
使用 loc
选取前三行:
import pandas as pd
data = {'Name':['Amy','Bob','Carl','Dave','Eva'],
'Age':[20, 22, 25, 30, 25],
'Address':['BJ','GZ','SH','GZ','BJ'],
'Score':[80, 85, 90, 92, 95]}
df=pd.DataFrame(data)
df1=df.iloc[0:3,:]
print(df1)
运行结果:
Name Age Address Score
0 Amy 20 BJ 80
1 Bob 22 GZ 85
2 Carl 25 SH 90
使用 .loc 方法
与 .iloc
方法不同的是,.loc
方法接受行和列的名称或行和列的布尔值来进行切片。同时,该方法可以选取所有行或所有列。
使用 loc
选取前三行:
import pandas as pd
data = {'Name':['Amy','Bob','Carl','Dave','Eva'],
'Age':[20, 22, 25, 30, 25],
'Address':['BJ','GZ','SH','GZ','BJ'],
'Score':[80, 85, 90, 92, 95]}
df=pd.DataFrame(data)
df1=df.loc[0:2,:]
print(df1)
运行结果:
Name Age Address Score
0 Amy 20 BJ 80
1 Bob 22 GZ 85
2 Carl 25 SH 90
使用 iloc 和 loc 的结合使用
结合使用 .iloc
和 .loc
方法可以进一步规定行和列的选取方式。
选取前三行和前两列:
import pandas as pd
data = {'Name':['Amy','Bob','Carl','Dave','Eva'],
'Age':[20, 22, 25, 30, 25],
'Address':['BJ','GZ','SH','GZ','BJ'],
'Score':[80, 85, 90, 92, 95]}
df=pd.DataFrame(data)
df1=df.iloc[0:3].loc[:,["Name","Age"]]
print(df1)
运行结果:
Name Age
0 Amy 20
1 Bob 22
2 Carl 25
使用 .ix 方法
.ix
方法可以根据标签和位置维度混合使用来选取DataFrame的子集。也包括位置和标签的切片。
选取前三行和前两列:
import pandas as pd
data = {'Name':['Amy','Bob','Carl','Dave','Eva'],
'Age':[20, 22, 25, 30, 25],
'Address':['BJ','GZ','SH','GZ','BJ'],
'Score':[80, 85, 90, 92, 95]}
df=pd.DataFrame(data)
df1=df.ix[0:2,['Name','Age']]
print(df1)
运行结果:
Name Age
0 Amy 20
1 Bob 22
2 Carl 25
总结
本文介绍了Pandas中如何按位置切片DataFrame的方法,包括使用 .iloc
、.loc
,以及它们的结合使用和 .ix
方法。通过这些方法,我们可以按照位置更加灵活地选取DataFrame的数据子集,方便我们进行数据处理和操作。