在pandas数据框列中替换当前值(除NA / NaN外的所有值)

时间:2018-02-02 10:33:48

标签: python pandas dataframe

有一个fillna方法用于填充缺失值,但是有一种方法可以用给定值替换所有实际值。

例如:

      c
  0  NA/NaN
  1  2.0
  2  NA/NaN
  3  6.0
  4  8.0
  5  NA/NaN
  6  12.0

对于每个数据点,我想用' v'标记它。意味着它包含有效值:

      c
  0   NA/NaN
  1  'v'
  2   NA/NaN
  3  'v'
  4  'v'
  5   NA/NaN
  6  'v'

2 个答案:

答案 0 :(得分:2)

  • 是否有特定原因要覆盖现有值,而不是保留validity的单独系列或列?
  • 使用自定义标记而不是boolean值也是一个额外的复杂性。

在您的代码中,您可以更轻松地使用

valid = df['c'].notnull()

如果你真的想用标记字符串覆盖它:

df.loc[df['c'].notnull(), 'c'] = 'v'

答案 1 :(得分:1)

试试这个:

df.loc[~df['c'].isnull()] = "'v'"