我想找出 Dataframe 的哪些列是分类的。这个 Dataframe 确实有z列,但我的代码无法检测到它并打印一个空列表。我该怎么修?
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
data=[[ 10,10,'a'],
[ 15,15,'a'],
[ 14,14,'b']
,[16,16,'b'],
[19,19,'a'],
[17,17,'a']
,[6,6,'c'],
[5,5,'b'],
[20,20,'c']
,[22,22,'c'],
[21,21,'b'],
[18,45 ,'a']]
df = pd.DataFrame(data, columns=['x','y','z'])
categorical_values=[]
for i in df.columns.values.tolist():
if (type(df[i].all()))==str:
categorical_values.append(i)
print(categorical_values, 'CATEGORICAL VALUES')
print(len(categorical_values),'total of categorical variables')
1条答案
按热度按时间cnjp1d6j1#
这里有什么不对劲吗
if (type(df[i].all()))==str
,让我们分解它:获取列
i
检查该列的所有值是否为True
,有关详细信息,请参阅文档.all()
系列。全部(轴=0,仅布尔_=无,skipna=真,级别=无,**kwargs)返回是否所有元素都为真,可能在轴上。
返回true,除非序列中或 Dataframe 轴上至少有一个元素为false或等效元素(例如零或空)。
获取返回类型
检查此类型是否正确
str
还是不您似乎想要检查列的数据类型。为此,请使用
dtypes
```