📅  最后修改于: 2023-12-03 14:49:18.689000             🧑  作者: Mango
如果你使用过 pandas 库中的 DataFrame,那么你肯定需要在某些时候从一个特定的列中获取它的唯一值。这在数据清洗和分析中非常常见。在本文中,我们将介绍如何使用 pandas 库从列中获取唯一值。
假设我们有以下 DataFrame:
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'age': [25, 30, 35, 40, 25],
'city': ['New York', 'London', 'Paris', 'San Francisco', 'New York']
})
现在我们想从 'city' 列中获取唯一值。我们可以使用 pandas 库中的 unique() 方法来实现这个功能。
# 从 'city' 列中获取唯一值
unique_cities = df['city'].unique()
print(unique_cities)
输出结果:
['New York' 'London' 'Paris' 'San Francisco']
unique() 方法返回一个 NumPy 数组,包含了所有唯一的值。我们还可以对 unique() 方法的输出进行排序,通过在方法中添加 sort 参数来实现:
# 从 'city' 列中获取排序后的唯一值
unique_cities_sorted = df['city'].unique(sort=True)
print(unique_cities_sorted)
输出结果:
['London' 'New York' 'Paris' 'San Francisco']
我们可以看到,输出结果是按字母顺序排序的。
如果我们想要知道某个值是否在我们的 DataFrame 中出现过,我们可以使用 isin() 方法。例如,我们可以使用以下代码检查 'name' 列中是否包含了 'Alice':
# 检查 'name' 列中是否包含 'Alice'
print('Alice' in df['name'].unique())
输出结果:
True
isin() 方法返回一个布尔数组,如果该数组的值为 True,则表示在特定列中找到了一个值。我们可以使用该数组来过滤 DataFrame。
# 过滤 'Charlie'、'David' 和 'Eva'
filtered_df = df[df['name'].isin(['Charlie', 'David', 'Eva'])]
print(filtered_df)
输出结果:
name age city
2 Charlie 35 Paris
3 David 40 San Francisco
4 Eva 25 New York
如上所述,我们可以使用 unique() 和 isin() 方法来从 Pandas 数据框中的列中获取唯一值。这些方法是在数据清洗和分析中非常有用的工具。