【问题标题】:how to replace multiple values with one value python如何用一个值替换多个值python
【发布时间】:2018-04-05 20:05:23
【问题描述】:

如何将数据 'Beer','Alcohol','Beverage','Drink' 仅替换为 'Drink'

df.replace(['Beer','Alcohol','Beverage','Drink'],'Drink')

没用

【问题讨论】:

  • 如果您的问题得到了解答,请奖励那些帮助过您的人。接受最有帮助的答案。您还可以投票支持所有其他有用的答案。请养成习惯,它对社区有帮助。
  • 此代码现在可以在 pandas 中使用,请参见 pandas.pydata.org/pandas-docs/stable/reference/api/… 上的示例 3

标签: python string pandas dataframe replace


【解决方案1】:

您的初始方法似乎适用于最新的 Python 迭代。

df.replace(['Beer','Alcohol','Beverage','Drink'],'Drink', inplace=True)

应该工作

【讨论】:

    【解决方案2】:

    较早的答案略有变化: 以下代码替换特定列/列的值

    df[['Col1']] = df[['Col1']].replace(dict.fromkeys(['Beer','Alcohol','Beverage','Drink'], 'Drink'))
    

    【讨论】:

      【解决方案3】:

      几乎拥有它。您需要将字典传递给df.replace

      df
      
             Col1
      0      Beer
      1   Alcohol
      2  Beverage
      3     Drink
      

      df.replace(dict.fromkeys(['Beer','Alcohol','Beverage','Drink'], 'Drink'))
      
          Col1
      0  Drink
      1  Drink
      2  Drink
      3  Drink
      

      这适用于完全匹配和替换。对于部分匹配和子字符串匹配,使用

      df.replace(
          dict.fromkeys(['Beer','Alcohol','Beverage','Drink'], 'Drink'), 
          regex=True
      )
      

      这不是就地操作,所以不要忘记将结果分配回去。

      【讨论】:

      • 哈!我本来要去df.replace({k: 'Drink' for k in ['Beer','Alcohol','Beverage','Drink']}) 但相反,我了解到dict.fromkeys
      • 如果需要,不会将inplace=True 传递给 df.replace 使其成为就地操作?
      • @2Toad 会但我不推荐它:stackoverflow.com/a/60020384/4909087
      【解决方案4】:

      看起来与 MaxU 的解决方案不同 :)

      df.replace({'|'.join(['Beer','Alcohol','Beverage','Drink']):'Drink'},regex=True)
      

      【讨论】:

      • 是哪个python版本?
      【解决方案5】:

      尝试以下方法:

      lst = ['Beer','Alcohol','Beverage','Drink']
      pat = r"\b(?:{})\b".format('|'.join(lst))
      
      df = df.replace(pat, 'Drink', regexp=True)
      

      【讨论】:

      • 不错的一个,只是不知道为什么你和我的不同,但可以得到相同的结果......对不起,我没有放弃字符串工作......你可以参考一些链接以供将来学习
      猜你喜欢
      • 2020-10-08
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 2022-10-05
      • 1970-01-01
      相关资源
      最近更新 更多