代码之家  ›  专栏  ›  技术社区  ›  Chris

条件替换-Python[重复]

  •  0
  • Chris  · 技术社区  · 5 年前

    d = {'col1': [1, 2, "."], 'col2': [3, 4,5]}
    x = pd.DataFrame(data=d)
    x[x["col1"] == "."]
    

    我想换新的 "." 具有 np.NaN 使用第三行,但我想不出正确的代码。

    3 回复  |  直到 5 年前
        1
  •  1
  •   rahlf23    5 年前

    只用 df.replace()

    import numpy as np
    
    x.replace('.',np.nan)
    

    返回:

       col1  col2
    0   1.0     3
    1   2.0     4
    2   NaN     5
    

    请注意,这将替换所有出现的 '.' 具有 NaN 在数据帧中。

        2
  •  1
  •   Gerges    5 年前

    如果只想替换“col1”中的“.”,则可以执行以下操作:

    x.loc[x.col1 == '.', 'col1'] = np.nan
    
        3
  •  0
  •   mad_    5 年前

    对系列而不是整个df调用replace

    x.col1=x.col1.replace('.',np.nan)
    

    也可以使用np.where

    np.where((x['col1'] == '.'), np.nan,x['col1'])