Pandas 如何按位置切片Pandas DataFrame

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

我们希望选取前三行数据来进行计算。这时我们就可以使用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)
Python

运行结果:

   Name  Age Address  Score
0   Amy   20      BJ     80
1   Bob   22      GZ     85
2  Carl   25      SH     90
Python

使用 .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)
Python

运行结果:

   Name  Age Address  Score
0   Amy   20      BJ     80
1   Bob   22      GZ     85
2  Carl   25      SH     90
Python

使用 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)
Python

运行结果:

   Name  Age
0   Amy   20
1   Bob   22
2  Carl   25
Python

使用 .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)
Python

运行结果:

   Name  Age
0   Amy   20
1   Bob   22
2  Carl   25
Python

总结

本文介绍了Pandas中如何按位置切片DataFrame的方法,包括使用 .iloc.loc,以及它们的结合使用和 .ix 方法。通过这些方法,我们可以按照位置更加灵活地选取DataFrame的数据子集,方便我们进行数据处理和操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册