如何根据字典键和值替换pandas dataframe列值?



根据col1中存在的字典值,我有一个数据框和一个字典需要更换。我试过了,但没有改变。做这件事的有效方法是什么?谢谢你。

df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}})
di = {1: "A", 2: "B"}
df
col1 col2
0    w    a
1    A    2
2    B  NaN

预期输出:

df.replace({"col1": di})
col1 col2
0    w    a
1    1    2
2    2  NaN

您可以创建dict,将keyvalue相互替换,然后使用.replace作为您的尝试:

>>> df = pd.DataFrame({'col1': {0: 'w', 1: 'A', 2: 'B'}, 'col2': {0: 'a', 1: 2, 2: np.nan}})
>>> df
col1    col2
0      w    a
1      A    2
2      B    NaN
>>> di = {1: "A", 2: "B"}
>>> di2 = {v:k for k,v in di.items()}
>>> df.replace({"col1": di2})
col1    col2
0      w    a
1      1    2
2      2    NaN

我可能会像这样遍历字典对:

for k, v in di.items()
df['col1'].replace(k, v, inplace=True)

最新更新