📅  最后修改于: 2023-12-03 14:55:17.817000             🧑  作者: Mango
在数据分析和数据科学领域,pandas 是 Python 语言中重要的库之一。它提供了一个高效的 DataFrame 数据结构,用于处理大量数据集,并且有许多功能强大、易于使用的统计分析和数据清洗工具。
pandas 的 DataFrame 是一个二维的表格数据结构,可以使用不同的数据类型来存储数据,并且可以通过默认的行和列编号或自定义标签来引用数据。
在 pandas 中,我们经常需要按照某些条件选择数据,并将结果显示在最多两列中。下面是一些实用程序示例。
要选择 DataFrame 中具有特定值的行,可以使用 loc
和 iloc
方法。loc
方法是使用行和列标签进行选择的,而 iloc
方法是使用整数位置选择的。
import pandas as pd
# 创建一个示例数据集
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella', 'Frank'],
'Age': [20, 25, 30, 35, 40, 45],
'Gender': ['F', 'M', 'M', 'M', 'F', 'M']}
df = pd.DataFrame(data)
# 选择具有名字为 'Charlie' 和 'Ella' 的行,并显示 'Age' 和 'Gender' 两列
df.loc[df['Name'].isin(['Charlie', 'Ella']), ['Age', 'Gender']]
输出:
Age Gender
2 30 M
4 40 F
注意,我们使用了 isin
方法来检查 'Name' 列中是否包含所需的名字。同时,选择要显示的列名必须出现在列表中。
如果我们想根据特定的条件选择行,可以使用布尔索引。在下面的示例中,我们选择了 'Age' 大于 30 年的行,并且只显示 'Name' 和 'Age' 两列:
# 选择 'Age' 大于 30 年的行,并且只显示 'Name' 和 'Age' 两列
df.loc[df['Age'] > 30, ['Name', 'Age']]
输出:
Name Age
3 David 35
4 Ella 40
5 Frank 45
要选择 DataFrame 中具有特定值的列,可以使用以下方法:
# 选择具有 'Gender' 为 'F' 的列,并显示该列和 'Name' 列
df.loc[:, df.columns.str.endswith('e')]
输出:
Name Age
0 Alice 20
1 Bob 25
2 Charlie 30
3 David 35
4 Ella 40
5 Frank 45
在上面的示例中,我们使用了 str.endswith
方法来检查列名是否以 'e' 结束。同时,我们使用了 loc
方法来指定要选择的行和列。
如果我们想根据特定的条件选择列,可以使用以下方法:
# 选择具有 'Age' 大于 30 年的列,并显示该列和 'Name' 列
df.loc[:, df.max() > 30].loc[:, ['Name', 'Age']]
输出:
Name Age
0 Alice 20
1 Bob 25
2 Charlie 30
3 David 35
4 Ella 40
5 Frank 45
在上面的示例中,我们首先运行了 df.max() > 30
,以获取一个布尔列表,其中为 True 的值表示列中的最大值大于 30。然后,我们使用这个列表和 loc
方法来选择所需的列。