Я прочитал .csv в dask dataframe. После прочтения, когда я делаю кодирование меток, как показано ниже
df = dd.concat([df_train,df_test])
categorical_cols = ['SAT_CD','SEG_OD','CBN']
def encode(df):
categorical_cols = ['SAT_CD','SEG_OD','CBN']
le = preprocessing.LabelEncoder()
for i in categorical_cols:
df[i] = df[i].astype('category')
le.fit(df[i])
df[i] = le.transform(df[i])
return df
df[categorical_cols] = df[categorical_cols].map_partitions(encode, meta={'SAT_CD':'i8','SEG_OD':'i8','CBN':'i8'})
, я получаю
См. Предостережения в документации: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning -a-view-versus- a-copy main : 7: SettingWithCopyWarning: пытается установить значение для копии фрагмента из DataFrame. Попробуйте использовать .loc [row_indexer, col_indexer] = значение вместо
Как я могу это исправить? Я делаю что-то не так?
Я попробовал следующее,
df[[categorical_cols]] = df[categorical_cols].map_partitions(encode, meta={'SAT_CD':'i8','SEG_OD':'i8','CBN':'i8'})
df.loc[:, categorical_cols] = df[categorical_cols].map_partitions(encode, meta={'SAT_CD':'i8','SEG_OD':'i8','CBN':'i8'})
Error: TypeError: '_LocIndexer' object does not support item assignment