使用 fillna 后更改未保存
changes not saved after using fillna
我在一列中有几个空值:
print(df['col'].isnull().sum(axis = 0))
我正在尝试这样替换它们:
df['col'].fillna(value='no_val')
#df['col'].value_counts()
print(df['col'].isnull().sum(axis = 0))
但它不起作用,并且在使用 .fillna 后仍然显示相同数量的空值。如果我这样改变它:
df = df['col'].fillna(value='no_val')
它会在下一行开始给我一个 'col' 的关键错误。我做错了什么?
这里:
df['col'].fillna(value='no_val')
您不会用空值填充的 df['col'] 替换,您只需填充空值并丢弃结果。
这里:
df = df['col'].fillna(value='no_val')
您将单个列(pd.Series 对象)重新分配给变量 df,这意味着它不再有列。
您应该做的是将返回的空值填充列 (pd.Series) 分配给相应的列 (pd.Series),如:
df['col'] = df['col'].fillna(value='no_val')
您可以在 fillna
方法中使用 inplace=True
来反映输出
df['col'].fillna(value='no_val',inplace=True)
或者您可以重新评估专栏
df['col']= df['col'].fillna(value='no_val')
我在一列中有几个空值:
print(df['col'].isnull().sum(axis = 0))
我正在尝试这样替换它们:
df['col'].fillna(value='no_val')
#df['col'].value_counts()
print(df['col'].isnull().sum(axis = 0))
但它不起作用,并且在使用 .fillna 后仍然显示相同数量的空值。如果我这样改变它:
df = df['col'].fillna(value='no_val')
它会在下一行开始给我一个 'col' 的关键错误。我做错了什么?
这里:
df['col'].fillna(value='no_val')
您不会用空值填充的 df['col'] 替换,您只需填充空值并丢弃结果。
这里:
df = df['col'].fillna(value='no_val')
您将单个列(pd.Series 对象)重新分配给变量 df,这意味着它不再有列。
您应该做的是将返回的空值填充列 (pd.Series) 分配给相应的列 (pd.Series),如:
df['col'] = df['col'].fillna(value='no_val')
您可以在 fillna
方法中使用 inplace=True
来反映输出
df['col'].fillna(value='no_val',inplace=True)
或者您可以重新评估专栏
df['col']= df['col'].fillna(value='no_val')