Pandas使用iloc选取多个列区间的方法

Pandas使用iloc选取多个列区间的方法

在本文中,我们将介绍如何使用Pandas的iloc方法选取DataFrame中的多个列区间。

阅读更多:Pandas 教程

Pandas的iloc方法

iloc方法是基于位置选取行与列的方法,可以使用整数或整数范围作为参数来选取行或列。其中,loc方法是基于标签选取行与列的方法。

import pandas as pd

df = pd.DataFrame({'A': [1,2,3,4],
                   'B': [5,6,7,8],
                   'C': [9,10,11,12],
                   'D': [13,14,15,16]})

# 选取第一列
df.iloc[:,0]
# 输出: 0    1
#       1    2
#       2    3
#       3    4

# 选取前两列
df.iloc[:,0:2]
# 输出:    A  B
#       0  1  5
#       1  2  6
#       2  3  7
#       3  4  8

# 选取第1,3,4列
df.iloc[:,[0,2,3]]
# 输出:    A   C   D
#       0  1   9  13
#       1  2  10  14
#       2  3  11  15
#       3  4  12  16

# 选取第1行
df.iloc[0,:]
# 输出: A     1
#       B     5
#       C     9
#       D    13
#       Name: 0, dtype: int64

# 选取前两行
df.iloc[0:2,:]
# 输出:    A  B   C   D
#       0  1  5   9  13
#       1  2  6  10  14

# 选取第1、3、4行
df.iloc[[0,2,3],:]
# 输出:    A   B   C   D
#       0  1   5   9  13
#       2  3   7  11  15
#       3  4   8  12  16

选取多个列区间

如果需要选取DataFrame中的多个列区间,也可以使用iloc方法,需要使用多个整数或整数范围,将它们组合起来。

例如,选取DataFrame中第1-2列和第3-4列。

# 选取第1-2列和第3-4列
df.iloc[:, [0,1,2,3][0:2]+[0,1,2,3][2:4]]
# 输出:    A  B   C   D
#       0  1  5   9  13
#       1  2  6  10  14
#       2  3  7  11  15
#       3  4  8  12  16

首先,[0,1,2,3]表示整个DataFrame中的4列。[0:2]表示第1-2列,[2:4]表示第3-4列。使用加号+将两个列表组合起来,形成新的列表[0,1,2,3][0:2]+[0,1,2,3][2:4]表示第1-2列和第3-4列。

我们也可以将它们封装成一个函数,供以后使用。

def multi_slice(df, ranges):
    cols = []
    for r in ranges:
        cols += [x for x in range(r[0], r[1]+1)]
    return df.iloc[:, cols]

# 选取第1-2列和第3-4列
multi_slice(df, [(0,1),(2,3)])
# 输出:    A  B   C   D
#       0  1  5

总结

Pandas的iloc方法可以方便地选取DataFrame中的行或列,而且选取方法也相对简单。如果需要选取多个列区间,可以使用多个整数或整数范围来组合。

在实际应用中,我们常常需要选取多个不连续的列或列区间,这时候可以使用封装好的函数,避免手动组合选取。

希望本文对读者有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程