python - 如何用另一个数据框替换熊猫数据框中的值
问题描述
我有一个数据框(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
解决方案
您可以使用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}
推荐阅读
- azure - 如何在 azure 中向网络接口卡添加附加 IP
- linux - 如何在VScode中配置json文件进行远程调试?
- python - PANDAS python引用第二个数据框和组标准来获取新列的值
- hibernate - Java Hibernate:findAll 包含“一对一”关系
- php - Ionic CLI 6.13.0 上的 CORS 问题
- parsing - 解析成员表达式的语法
- python - 如何在气流中复制数据
- python-3.x - 将 Azure DevOps 管道详细信息发送到 SIEM
- python - Kafka-python 脚本无法正确执行
- .net-core - 如何在嵌套的 fluentvalidation 验证器中获取类名