按列索引拆分Pandas数据框架

按列索引拆分Pandas数据框架

Pandas支持两种数据结构来存储数据:系列(单列)和数据框架,其中数值存储在一个二维表中(行和列)。为了使用索引对数据框架进行索引,我们需要使用dataframe.iloc()方法,它需要

语法:

pandas.DataFrame.iloc[]

参数:

  • Index Position:整数或整数列表中的行的索引位置。

返回类型: 数据框或系列,取决于参数。

让我们来创建一个数据框架。在下面的例子中,我们将使用一个简单的二进制数据集,用于分类一个物种是哺乳动物还是爬行动物。物种这一栏持有标签,其中1代表哺乳动物,0代表爬行动物。数据被存储在dict中,可以传递给DataFrame函数,输出一个数据框架。

import pandas as pd
  
dataset = {'toothed': [1, 1, 1, 0, 1, 1, 1, 1, 1, 0],
           'hair': [1, 1, 0, 1, 1, 1, 0, 0, 1, 0],
           'breathes': [1, 1, 1, 1, 1, 1, 0, 1, 1, 1],
           'legs': [1, 1, 0, 1, 1, 1, 0, 0, 1, 1],
           'species': [1, 1, 0, 1, 1, 1, 0, 0, 1, 0]
           }
  
df = pd.DataFrame(dataset)
  
df.head()

输出 :

按列索引拆分Pandas数据框架

output of head()

例子1:现在我们想把物种列和特征列(齿、毛、呼吸、腿)分开,为此我们要利用pandas提供的iloc[行、列]方法。

这里’:’代表所有的行,-1代表最后一列,所以下面的单元格要取所有的行和所有的列,除了最后一列(’物种’),在输出中可以看到。

X = df.iloc[:,:-1]
X

输出:

按列索引拆分Pandas数据框架

为了将物种列从数据集的其他部分分离出来,我们使用了类似的代码,只是在cols位置没有填充一个切片,而是传入一个整数值-1。

Y = df.iloc[:,-1]
Y

输出 :

按列索引拆分Pandas数据框架

实例2:使用整数列表进行分割

通过传入一个整数列表而不是一个片断,可以获得类似的输出结果

X = df.iloc[:,[0,1,2,3]]
X

输出:

按列索引拆分Pandas数据框架

对于物种列,我们将使用该列的索引,即4,我们也可以使用-1。

Y = df.iloc[:,4]
Y

输出:

按列索引拆分Pandas数据框架

示例3:将数据帧分割成两个独立的数据帧

在上面两个例子中,Y的输出是一个系列,而不是一个数据框架。现在我们要把数据框架分成两个独立的数据框架,这在处理多标签数据集时很有用。将使用同一个数据集。

首先,我们要在柱子的头发上进行分割

df.iloc[:,[0,1]]

输出:

按列索引拆分Pandas数据框架

第二个数据框架将包含3列呼吸 , 腿 , 种类

df.iloc[:,[2,3,4]] 

输出:

按列索引拆分Pandas数据框架

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程