Я пытаюсь очистить некоторые столбцы и столкнулся с некоторыми проблемами. Существует множество данных о продажах с двоичными значениями для каждого продукта.
Прилагается образец набора данных.
Сначала процесс был направлен на dropna
. Кроме того, есть значения столбцов, такие как
и 11
, которые не соответствуют желаемому двоичному значению. Я пробовал здесь несколько вещей, таких как
#### THIS SHOULD BE CLOSE
def clean_empty_string(df, col):
df = df[df[col] != 1] or df[df[col] != 0]
return df
for i in df.columns:
clean_empty_string(df, i)
# this does the same except not in a function
#cleandata4bestdeal = cleandata4bestdeal[cleandata4bestdeal['DellLaptop'] != ' ']
def get_index_names(df, col, val):
index_names = df[df[col] == val].index
return index_names
def drop_index_names(df, idx):
df.drop(idx, inplace=True)
return df
idx = get_index_names(df, 'DellLaptop', ' ')
drop_index_names(df, idx)
Когда я пытаюсь:
df = df[df['DellLaptop'] != ' ']
Это работает, но когда я вставляю его в функцию clean_empty_string
, я получаю
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Может кто-нибудь подсказать, что здесь может быть не так?
Вот как выглядит столбец:
'Продукт': [0,1,Nan,11, ' ']