我有一个pd.DataFrame,其中包含不同的dtypes列。我想要每种类型的列数。我使用Pandas 0.24.2。

我试过了:

    dataframe.dtypes.value_counts()

它对于其他dtypes (float64, object, int64)效果很好,但是出于一个奇怪的原因,它没有聚合“类别”功能,并且每个类别的计数都不同(好像它们将被视为dtypes的不同值)。

我也尝试过:
    dataframe.dtypes.groupby(by=dataframe.dtypes).agg(['count'])

但这引起了



可复制示例:
import pandas as pd

df = pd.DataFrame([['A','a',1,10], ['B','b',2,20], ['C','c',3,30]], columns = ['col_1','col_2','col_3','col_4'])

df['col_1'] = df['col_1'].astype('category')
df['col_2'] = df['col_2'].astype('category')

print(df.dtypes.value_counts())

预期结果:
    int64       2
    category    2
    dtype: int64

实际结果:
    int64       2
    category    1
    category    1
    dtype: int64

最佳答案

正如@jezrael提到的,它在0.25.0中已弃用,dtypes.value_counts(0)将提供两个category ies,因此要进行修复,请执行以下操作:

print(df.dtypes.astype(str).value_counts())

输出:
int64       2
category    2
dtype: int64

关于pandas - 如何计算 Pandas 的分类特征数量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57213786/

10-16 13:04