【问题标题】:Python: Pandas to add a string if the condition is NaNPython:如果条件为 NaN,则 Pandas 添加字符串
【发布时间】:2020-04-16 17:06:57
【问题描述】:

我想改变的是名称列是NaN,如果列符号中有破折号,我想添加一个字符串'P'。

      name    symbol
0     NaN     Bom
1     John    Madam-T
2     Marry   Madam
3     NaN     Madam-T 
4     NaN     Bom-T
5     NaN     Marry-Y

期望的结果是

      name    symbol
0     NaN     Bom
1     John    Madam-T
2     Marry   Madam
3     NaN     Madam-PT 
4     NaN     Bom-PT
5     NaN     Marry-PY

索引 3 到 5 将添加一个 P 字符串,因为它包含 - 但我只希望列名的条件为 NaN 时发生。 df = df['symbol'].str.replace('-', '-P') 替换所有包含 - df = df['name'].isnull 调用列名中的 NaN 但是,我无法将两者结合起来。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用DataFrame.loc 选择和设置按掩码过滤的值:

    m = df['name'].isnull()
    df.loc[m, 'symbol'] = df.loc[m, 'symbol'].str.replace('-', '-P')
    print (df)
        name    symbol
    0    NaN       Bom
    1   John   Madam-T
    2  Marry     Madam
    3    NaN  Madam-PT
    4    NaN    Bom-PT
    5    NaN  Marry-PY
    

    【讨论】:

      猜你喜欢
      • 2022-11-27
      • 1970-01-01
      • 1970-01-01
      • 2022-08-08
      • 2021-12-20
      • 2020-06-25
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多