对文本d应用词典

2024-10-03 13:27:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下词典:

{0: 'group',
 1: 'still',
 2: 'earnings',
 3: 'shares',
 4: 'make',
 5: 'finally',
 6: 'amazon',
 7: 'deals',
 8: 'comes',
 9: 'york',
 10: 'iphones'}

print(df)

         0            1            2    ...     53      54         55
0      Group         still       shares  ...    deals  york     iphones
1      amazon        shares       make  ...    finally iphones earnings
...

后者是从剥离物品中获得的:

 df = df["text_articles"].str.split(" ", expand = True) 

如何使用字典翻译数据帧的每一行,最终创建:

print(final_df)

         0            1            2    ...     53      54         55
0        0            1            3  ...       7       9          10
1        6            3            4  ...       5      10           2
...

Tags: amazondfmakegroup词典printyorkshares
2条回答

用途:

print (df)
        0       1       2       53       54       55
0   Group   still  shares    deals     york  iphones
1  amazon  shares    make  finally  iphones       aa

首先将具有值的键交换到新字典:

d1 = {v:k for k, v in d.items()}

如果需要将不存在的值替换为NaN,则使用^{}^{}

df = df.apply(lambda x: x.str.lower().map(d1))
print (df)
   0  1  2  53  54    55
0  0  1  3   7   9  10.0
1  6  3  4   5  10   NaN

或者如果要将不存在的值替换为相同的标量,例如-1

df = df.applymap(lambda x: d1.get(x.lower(), -1))
print (df)
   0  1  2  53  54  55
0  0  1  3   7   9  10
1  6  3  4   5  10  -1

最后,如果不想改变:

df = df.apply(lambda x: x.str.lower()).replace(d1)
print (df)
   0  1  2  53  54  55
0  0  1  3   7   9  10
1  6  3  4   5  10  aa

我想你的请求可以用df.replace
很好地捕捉到 但首先你得把字典翻过来。你知道吗

d = {v:k for k, v in d.items()}
df = df.replace(d)

相关问题 更多 >