我有一个数据帧,我正在尝试对数据帧中的所有分类值进行编码。下面是我写的一次编码所有分类列的代码,
for col in data.select_dtypes('object').columns:
data[col] = data[col].astype('category').cat.codes
但这只在某些情况下有效,通常会抛出以下错误:"Dataframe has no attributed as cat“
AttributeError: 'DataFrame' object has no attribute 'cat'
现在我不能理解它是如何工作的,有时会失败。此外,我没有将cat方法应用于整个数据帧,而是每次遍历循环时都将其应用于列(序列)。
有人知道这里出了什么问题吗?
发布于 2021-05-13 07:19:21
问题是存在重复的列名,因此如果选择一列,则所有列都具有相同的标签。
for col in data.select_dtypes('object').columns:
print (col)
#check what select
print (data[col] )
data[col] = data[col].astype('category').cat.codes
https://stackoverflow.com/questions/67515317
复制相似问题