“功能”对象没有属性“列”

时间:2019-05-27 17:22:54

标签: python pandas

我尝试将列编码为类别。

由于所有列均为dtypes:对象,因此无法处理数据框。

我的代码是:

categorize_column = lambda x:x.astype('category')

df.columns = df.columns.apply(categorize_column,axis = 0)

我得到一个错误:

“功能”对象没有属性“列”

1 个答案:

答案 0 :(得分:1)

根据docs

  

DataFrame中的所有列都可以批量转换为分类   在施工期间或施工之后。

     

这可以在构造期间通过在以下位置指定dtype =“ category”完成   DataFrame构造函数:

因此,您有两种选择:

  1. 在构建DataFrame dtype='category'期间指定df = pd.DataFrame(data, dtype='category')
  2. 将现有的DataFrame列转换为dtype“类别” df = df.astype('category')
您的示例中的

df.columns通常返回一个pandas.core.indexes.base.Index,您可以将其视为列标题列表。它没有.apply方法(pd.Seriespd.DataFrame有),并且与DataFrame中的值无关。

而且,您似乎不小心将功能分配给了df。如果要尝试第二种方法,则需要先重新创建DataFrame。

相关问题