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中的行或列,而且选取方法也相对简单。如果需要选取多个列区间,可以使用多个整数或整数范围来组合。
在实际应用中,我们常常需要选取多个不连续的列或列区间,这时候可以使用封装好的函数,避免手动组合选取。
希望本文对读者有所帮助。