【问题标题】:Python: Replace multiple old values to new value PandasPython:将多个旧值替换为新值 Pandas
【发布时间】:2022-01-30 02:36:19
【问题描述】:

我已经搜索了一段时间,但我似乎无法找到这个小问题的答案。

我有这个代码来创建一个替换值的函数:

df = {'Name':['al', 'el', 'naila', 'dori','jlo'],
    'living':['Alvando','Georgia GG','Newyork NY','Indiana IN','Florida FL'],
    'sample2':['malang','kaltim','ambon','jepara','sragen'],
    'output':['KOTA','KAB','WILAYAH','KAB','DAERAH']
}

df = pd.DataFrame(df)

df = df.replace(['KOTA', 'WILAYAH', 'DAERAH'], 0)
df = df.replace('KAB', 1)

但我实际上期望这个输出带有不重复替换的简单代码


    Name    living      sample2   output
0   al     Alvando      malang     0
1   el     Georgia GG   kaltim     1
2   naila  Newyork NY   ambon      0
3   dori   Indiana IN   jepara     1
4   jlo    Florida FL   sragen     0

我尝试过使用 np.where ,但它没有给出预期的结果。所有结果都显示为0,但原来的值为1

df['output'] = pd.DataFrame({'output':np.where(df == "KAB", 1, 0).reshape(-1, )})

【问题讨论】:

  • 这对你有用吗? df = df.replace(['KOTA', 'WILAYAH', 'DAERAH'], 0).replace('KAB', 1)
  • 天哪,谢谢你。但是有一些奇怪的东西,我尝试过这种方法,但没有奏效。但现在我再试一次后它可以工作了。为什么?
  • 我其实不知道!我实际上复制并运行了您的代码,它对我有用。我会很快发布答案:)

标签: python pandas dataframe replace str-replace


【解决方案1】:

此代码应该为您工作:

df = df.replace(['KOTA', 'WILAYAH', 'DAERAH'], 0).replace('KAB', 1)

输出:

>>> df
    Name      living sample2  output
0     al     Alvando  malang       0
1     el  Georgia GG  kaltim       1
2  naila  Newyork NY   ambon       0
3   dori  Indiana IN  jepara       1
4    jlo  Florida FL  sragen       0

【讨论】:

  • @Niken 看到我上面的评论,关于这个问题。
猜你喜欢
  • 1970-01-01
  • 2021-06-09
  • 2016-03-29
  • 1970-01-01
  • 2010-12-10
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
相关资源
最近更新 更多