如何用另一个数据帧替换熊猫数据帧中的值

时间:2021-03-16 23:09:48

标签: python pandas dataframe

我有一个数据帧 (df1),我想用 df2 数据帧中的 symtom_1 值替换 symptom_2weight... 中的值。

第一个数据框有 4000 行和 17 列

df1

   Disease            Symptom_1    Symptom_2    Symptom_3
0  Fungal infection   itching      itching      NaN
1  Fungal infection   skin_rash    itching      NaN
2  Fungal infection   itching      itching      NaN
3  Fungal infection   itching      itching      skin_rash
4  vertigo            itching      skin_rash    skin_rash
5  vertigo            vomiting     skin_rash    vomiting
6  vertigo            vomiting     skin_rash    vomiting
7  vertigo            vomiting     vomiting     skin_rash
8  Fungal infection   vomiting     vomiting     vomiting
9  Fungal infection   skin_rash    skin_rash    vomiting
10 Fungal infection   skin_rash    vomiting     itching

第二个数据框有 133 行

df2

    Symptom              weight
0   itching                 1
1   skin_rash               3
2   nodal_skin_eruptions    4
3   continuous_sneezing     4
4   shivering               5

1 个答案:

答案 0 :(得分:1)

您可以使用 replace 并传入字典。

repl_dict = df2.set_index('Symptom')['weight'].to_dict()

print(df1.replace(repl_dict))

             Disease Symptom_1 Symptom_2 Symptom_3
0   Fungal infection         1         1       NaN
1   Fungal infection         3         1       NaN
2   Fungal infection         1         1       NaN
3   Fungal infection         1         1         3
4            vertigo         1         3         3
5            vertigo  vomiting         3  vomiting
6            vertigo  vomiting         3  vomiting
7            vertigo  vomiting  vomiting         3
8   Fungal infection  vomiting  vomiting  vomiting
9   Fungal infection         3         3  vomiting
10  Fungal infection         3  vomiting         1

repl_dict

{'itching': 1,
 'skin_rash': 3,
 'nodal_skin_eruptions': 4,
 'continuous_sneezing': 4,
 'shivering': 5}