Python:将多个旧值替换为新值Pandas



我已经四处寻找了一段时间,但似乎找不到这个小问题的答案。

我有这个代码来制作一个替换值的函数:

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)

输出:

>>> 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

最新更新