Python - 按列名对数据帧进行子集
使用 Pandas 库,我们可以对一个 DataFrame 执行多项操作。我们甚至可以以多种格式创建和访问 DataFrame 的子集。这里的任务是按列名创建一个子集 DataFrame。我们可以选择不同的方法来执行此任务。以下是下面提到的可能方法 -
在执行任何操作之前,我们需要编写几行代码来导入必要的库并创建一个 DataFrame。
创建数据帧
Python3
#import pandas
import pandas as pd
# create dataframe
data = {'Name': ['John', 'Emily', 'Lara', 'Lucas', 'Katy', 'Jordan'],
'Gender': [30, 27, 21, 21, 16, 20],
'Branch': ['Arts', 'Arts', 'Commerce', 'Science',
'Science', 'Science'],
'pre_1': [9, 9, 10, 7, 6, 9],
'pre_2': [8, 7, 10, 6, 8, 8]}
df = pd.DataFrame(data)
df
Python3
# create a subset of all rows
# and Name, Gender and Branch column
df.iloc[:, 0:3]
Python3
# creating subset dataframe using
# indexing operator
df[['Name', 'pre_1', 'pre_2']]
Python3
# create a subset of columns pre_1 and pre_2
# using filter() method
df.filter(like='pre')
输出:
方法一:使用Python iloc()函数
此函数允许我们通过基于索引从列中选择特定值来创建子集。
句法:
df_name.iloc[beg_index:end_index+1,beg_index:end_index+1]
示例:创建一个包含 Name、Gender 和 Branch 列的子集
蟒蛇3
# create a subset of all rows
# and Name, Gender and Branch column
df.iloc[:, 0:3]
输出 :
方法 2:使用索引运算符
我们可以使用索引运算符即方括号来创建子集数据帧
示例:创建一个包含 Name、pre_1 和 pre_2 列的子集
蟒蛇3
# creating subset dataframe using
# indexing operator
df[['Name', 'pre_1', 'pre_2']]
输出 -
方法 3:使用带有 like 关键字的 filter() 方法
我们可以使用这种方法,特别是当我们必须创建一个具有类似模式名称的列的子集数据框时。
示例:使用 pre_1 和 pre_2 列创建子集
蟒蛇3
# create a subset of columns pre_1 and pre_2
# using filter() method
df.filter(like='pre')
输出: