📌  相关文章
📜  从 Pandas 数据框中的列中获取唯一值(1)

📅  最后修改于: 2023-12-03 14:49:18.689000             🧑  作者: Mango

从 Pandas 数据框中的列中获取唯一值

如果你使用过 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 数据框中的列中获取唯一值。这些方法是在数据清洗和分析中非常有用的工具。