用pandas中的数据框中的NaN替换所有值

时间:2017-07-03 09:27:25

标签: python pandas

我有一个小数据帧(df):

unique  a     b     c     d 
  0    None  None  None  None
  1    None  None  None  None
  2    None  0132  None  None
  3    None  None  None  0231
  4    None  None  None  None
  5    None  None  0143  None
  6    0121  None  None  None
  7    None  None  None  0432

我需要用NaN替换所有值。我尝试应用df.fillna(np.NAN),但它不会更改单元格中的值,其中有一个数字。 如何使所有值都被替换? Dataframe应如下所示:

unique  a     b     c     d 
  0    NaN   NaN   NaN   NaN
  1    NaN   NaN   NaN   NaN
  2    NaN   NaN   NaN   NaN
  3    NaN   NaN   NaN   NaN
  4    NaN   NaN   NaN   NaN
  5    NaN   NaN   NaN   NaN
  6    NaN   NaN   NaN   NaN
  7    NaN   NaN   NaN   NaN

3 个答案:

答案 0 :(得分:4)

使用loc分配np.nan

df.loc[:] = np.nan

iloc也有效

df.iloc[:] = np.nan

答案 1 :(得分:2)

使用DataFrame构造函数,并按df传递索引和列名:

df = pd.DataFrame(columns=df.columns, index=df.index)

答案 2 :(得分:1)

只需添加到池中,这也可以:

df[:] = np.nan