使用索引操作符创建Python Pandas的子集DataFrame
Pandas是Python中最受欢迎的数据分析工具之一,它允许用户使用DataFrame和Series对象来处理和操纵各种数据类型。在使用Pandas时,有时需要创建子集DataFrame,以过滤、选择和操作数据。本文将介绍如何使用索引操作符创建Python Pandas的子集DataFrame。
更多Pandas相关文章,请阅读:Pandas 教程
创建DataFrame
在介绍如何使用索引操作符创建子集DataFrame之前,我们先来创建一个基本的DataFrame。
import pandas as pd
data = {'name': ['John', 'Tom', 'Jane', 'Mike'],
'age': [25, 30, 18, 22],
'gender': ['M', 'M', 'F', 'M']}
df = pd.DataFrame(data)
print(df)
运行上面的代码,我们将得到以下输出:
name age gender
0 John 25 M
1 Tom 30 M
2 Jane 18 F
3 Mike 22 M
这是一个由四个字典项构成的DataFrame对象,每个字典项包括’name’、’age’和’gender’三个列。现在我们已经有了一个DataFrame对象,可以开始创建它的子集。
使用单独一列创建子集DataFrame
在Pandas中,可以使用列名来选择单独一列。可以使用DataFrame对象的索引操作符([])来创建包含所需列的子集DataFrame。
subset1 = df['name']
print(subset1)
运行上面的代码,我们将得到以下输出:
0 John
1 Tom
2 Jane
3 Mike
Name: name, dtype: object
这将返回一个名为’name’的Series对象,其中包含原始DataFrame中’name’列中的所有值。
现在使用索引操作符来选择多个列:
subset2 = df[['name', 'age']]
print(subset2)
这将返回一个新的DataFrame对象,其中包含’name’和’age’列的所有值:
name age
0 John 25
1 Tom 30
2 Jane 18
3 Mike 22
使用行位置创建子集DataFrame
在Pandas中,可以使用行位置来选择单独一行。可以使用DataFrame对象的iloc[] 操作符来创建包含所需行的子集DataFrame。
例如,以下代码将返回第二行:
subset3 = df.iloc[1]
print(subset3)
这将返回一个名为df的Series对象,其中包含原始DataFrame中第二行的所有值。
name Tom
age 30
gender M
Name: 1, dtype: object
现在使用索引操作符来选择多个行:
subset4 = df.iloc[[1,3]]
print(subset4)
这将返回一个包含第二行和第四行的新的DataFrame对象:
name age gender
1 Tom 30 M
3 Mike 22 M
使用行和列位置创建子集DataFrame
在Pandas中,可以使用行和列位置来选择单独一行和列。可以使用DataFrame对象的iloc[] 操作符和索引操作符[] 来创建包含所需行和列的子集DataFrame。
例如,以下代码将返回第二行和第二列:
subset5 = df.iloc[1, 1]
print(subset5)
这将返回原始DataFrame中第二行和第二列中唯一的值:
30
现在使用索引操作符和iloc[] 操作符来选择多个行和列:
subset6 = df.iloc[[0, 2], [0, 2]]
print(subset6)
这将返回原始DataFrame中第一行和第三行,以及包含’name’和’gender’列的新的DataFrame对象:
name gender
0 John M
2 Jane F
使用列条件筛选创建子集DataFrame
除了使用行和列的位置来创建子集DataFrame外,还可以使用条件筛选来创建子集DataFrame。可以使用DataFrame对象的索引操作符[]和比较运算符来创建包含符合指定条件的行和列的子集DataFrame。
例如,以下代码将返回年龄大于等于25岁的行:
subset7 = df[df['age'] >= 25]
print(subset7)
这将返回一个新的DataFrame对象,其中包含符合年龄大于等于25岁的所有行:
name age gender
0 John 25 M
1 Tom 30 M
现在使用多个条件来创建子集DataFrame:
subset8 = df[(df['age'] >= 20) & (df['gender'] == 'M')]
print(subset8)
这将返回一个新的DataFrame对象,其中包含符合年龄大于等于20岁并且性别为男性的所有行:
name age gender
0 John 25 M
1 Tom 30 M
3 Mike 22 M
结论
在本文中,我们介绍了如何使用索引操作符创建Python Pandas的子集DataFrame。我们了解了如何使用单独一列、多个列、单独一行、多个行、行和列位置以及条件筛选来创建子集DataFrame。知道如何创建子集DataFrame对于数据分析和处理非常重要,因为它使我们能够更轻松地过滤、选择和操作数据。