根据相应的数据帧行有条件地"replace"列表列表中的元素的有效方法



我有一个pandas数据框架,其结构如下:

df =

<表类> repl_str normal_str tbody><<tr>1 _labelled1 _text2 _labelled2 _text4 _labelled4 _text5 _labelled5 _text7 _labelled7 _text8 _labelled8 _text

如果normal_str列的值都是唯一的,可以创建一个字典,将normal_str列映射到repl_str

A = [['1_text', '3_text', '4_text'], ['5_text'], ['6_text', '8_text']]
d = df.set_index(['normal_str'])['repl_str'].to_dict()
B = [[d.get(text, text) for text in lst] for lst in A]
print(B)
[['1_labelled', '3_text', '4_labelled'], ['5_labelled'], ['6_text', '8_labelled']]

相关内容