我有一个包含不同数据类型列的pd.DataFrame
,我想知道每种类型的列数。我使用的是Pandas 0.24.2。
我尝试了以下代码:
dataframe.dtypes.value_counts()
它能够很好地处理其他数据类型(float64,object,int64),但由于某种奇怪的原因,它无法聚合“category”特征,并且我对每个类别都得到不同的计数(就好像它们被视为不同的数据类型值进行计数)。
我也尝试过:
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
value_counts()
对于除了category
之外的每种数据类型都完美地工作。 - Mohamed Thasin ah