📅  最后修改于: 2023-12-03 15:18:54.572000             🧑  作者: Mango
在Python中使用pandas库,可以轻松地对数据进行处理和分析。其中一个常见的操作就是从DataFrame中选择特定的行和列。在本文中,我们将介绍如何使用select
和where
方法从DataFrame中选择行和列。
使用select
方法可以轻松地从DataFrame中选择指定列。它接受一个由需要选择的列名组成的列表作为参数,并返回一个仅包含这些列的新DataFrame。
import pandas as pd
# 创建DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 选择指定列
df_new = df.select(['name', 'age'])
print(df_new)
输出结果如下:
name age
0 Alice 25
1 Bob 30
2 Charlie 35
3 David 40
使用where
方法可以轻松地从DataFrame中选择满足特定条件的行。它接受一个布尔数组作为参数,并返回一个仅包含满足条件的行的新DataFrame。
import pandas as pd
# 创建DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 选择满足条件的行
df_new = df.where(df['age']>30)
print(df_new)
输出结果如下:
name age gender
0 NaN NaN NaN
1 NaN 30.0 M
2 Charlie 35.0 M
3 David 40.0 M
从上面的结果可以看出,返回的新DataFrame中,所有不满足条件的行均被替换成了NaN。
我们也可以将select
和where
方法组合起来使用,从而选择满足特定条件的行和指定的列。例如,下面的代码选择年龄大于30岁的人的姓名和性别。
import pandas as pd
# 创建DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 选择满足条件的行和指定的列
df_new = df.select(['name', 'gender']).where(df['age']>30)
print(df_new)
输出结果如下:
name gender
0 NaN NaN
1 NaN M
2 NaN M
3 David M
从结果可以看出,返回的新DataFrame中,所有不满足条件的行仍被替换成NaN,同时只显示了指定的列。