📌  相关文章
📜  如何计算 Pandas 数据框列的不同值?(1)

📅  最后修改于: 2023-12-03 15:09:15.194000             🧑  作者: Mango

如何计算 Pandas 数据框列的不同值?

在数据分析和处理中,经常需要统计数据框中每个列的不同值的个数,以便分析数据的分布和特征。本文将介绍如何使用 Pandas 计算数据框列的不同值。

方法一:value_counts()

Pandas 提供了 value_counts() 方法来计算每个列的不同值的频数。它可以用来计算 Series 对象的不同值,也可以用于 DataFrame 对象的每一列。

下面是一个示例代码,演示如何使用 value_counts() 方法计算数据框每一列的不同值。

import pandas as pd

# 创建一个数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [1, 1, 2, 2, 3], 'C': ['cat', 'dog', 'cat', 'cat', 'bird']}
df = pd.DataFrame(data)

# 计算每列的不同值
for col in df.columns:
    print(col, ':')
    print(df[col].value_counts())

这段代码将输出每列的不同值及其频数,如下所示:

A :
5    1
4    1
3    1
2    1
1    1
Name: A, dtype: int64
B :
2    2
1    2
3    1
Name: B, dtype: int64
C :
cat     3
dog     1
bird    1
Name: C, dtype: int64
方法二:unique() 和 len()

另一种计算每列不同值的方法是使用 unique()len() 方法。unique() 方法返回一个数组,包含 Series 或 DataFrame 中不同的值,然后使用 len() 方法计算这个数组的长度,即不同值的个数。

下面是一个示例代码,演示如何使用 unique() 和 len() 方法计算数据框每一列的不同值。

import pandas as pd

# 创建一个数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [1, 1, 2, 2, 3], 'C': ['cat', 'dog', 'cat', 'cat', 'bird']}
df = pd.DataFrame(data)

# 计算每列的不同值
for col in df.columns:
    print(col, ':', len(df[col].unique()))

这段代码将输出每列的不同值的个数,如下所示:

A : 5
B : 3
C : 3
总结

本文介绍了两种计算 Pandas 数据框列的不同值的方法,分别是 value_counts() 和 unique() + len()。这两种方法都很简单易懂,并且能够满足大多数的需求。如果您需要更高级的计算操作,可以参考 Pandas 的官方文档。