我有一个数据帧 (df1),我想用 df2 数据帧中的 symtom_1
值替换 symptom_2
、weight
... 中的值。
第一个数据框有 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
答案 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}