我正在尝试清理一些列,我遇到了一些事情。 每个产品都有一组具有二进制值的销售数据
附件是数据集的一个示例
这个过程首先是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,”]
如果您只需要二进制值,则应执行以下操作:
相关问题 更多 >
编程相关推荐