我有一个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/