【发布时间】:2020-04-02 23:31:03
【问题描述】:
我有一些代码可以将“object”类型的 DataFrame 的所有列转换为“category”类型。我只是按列循环遍历我的 DF,它已经被过滤为对象类型,并让那些唯一值比率低的对象只转换它们。
converted_obj = pd.DataFrame()
for col in df201911_obj.columns:
num_unique_values = len(df201911_obj[col].unique())
num_total_values = len(df201911_obj[col])
if num_unique_values / num_total_values < 0.5:
converted_obj.loc[:,col] = df201911_obj[col].astype('category')
else:
converted_obj.loc[:,col] = df201911_obj[col]
我收到一个 AttributeError: 'DataFrame' 对象没有属性 'unique'
我用循环检查了所有列的数据类型,因为有超过 100 列:
for col in df201911_obj.columns:
print(type(col))
他们都是:<class 'str'>
为什么会出现这个错误?
【问题讨论】:
-
列名是否重复?
-
我确实做到了。 @Quang Hoang
-
df[some_dup_col_name]给你一个数据框,而不是系列,因此错误。
标签: python pandas attributeerror