我正在做一个如下的循环
count=[]
for j in df:
for i in df[j]:
if i=="?":
print (np.empty(1))
count.append(np.empty(1))
else:
print (i)
count.append(i)
这个循环可以将"? "转换为[nan],但不能转换为空值。
所以如果我使用df.isnull().sum(),那么它会给我一些空值
如果你使用for-loop和Pandas,那么98%的可能性是你做错了。你有多种选择。
df.replace('?', np.nan)
或者
df=df.where(df=='?', None)
np.nan
比None更好。读取数据时,你可以传入一个NaN值的列表。
missing_values = ["n/a", "na", "?", "missing"]
df = pd.read_csv("data.csv", na_values = missing_values)
你也可以将
missing_values = ["n/a", "na", "?", "missing"]
mapper = {m:np.nan for m in missing_values}
df = df.replace(mapper)