python - Pandas 根据另一列的 dict 值添加列
问题描述
给定一个数据框 df,它包含以下列: col1, col2, col3
Col1 包含字符串值(可能的重复值),如下所示:
Val1
Val2
Val3
Val1
Val1
Val1
此外,我有一个存储 Col1 映射的字典 - > 我需要添加到数据框“df”的新值。例子 :
{
"Val1" : "new_val1",
"Val2" : "new_val2",
"Val3" : "new_val3",
}
现在,基于字典映射,我想将“col_new”添加到“df”中。样本最终数据框(仅显示相关列):
col1 col_new
Val1 new_val1
Val2 new_val2
Val3 new_val3
Val1 new_val1
Val1 new_val1
Val1 new_val1
我尝试了 df.map(),但这似乎只在数据框中的键列唯一时才有效。
建议?
解决方案
除了@sophods 的回答,您还可以
df['col_new'] = df['col1'].apply(lambda x:your_dict[x])
根据评论添加
import pandas as pd
df=pd.DataFrame({'col1':['Val1','Val2','Val3','Val1','Val1','Val1']})
your_dict={
"Val1" : "new_val1",
"Val2" : "new_val2",
"Val3" : "new_val3",
}
df['col_new'] = df['col1'].apply(lambda x:your_dict[x])
print(df)
输出
col1 col_new
0 Val1 new_val1
1 Val2 new_val2
2 Val3 new_val3
3 Val1 new_val1
4 Val1 new_val1
5 Val1 new_val1
推荐阅读
- c++ - “使用命名空间”来定义全局函数
- hadoop - hive 配置 hive.stats.fetch.partition.stats 不存在
- wso2 - Wso2 API 管理器 STATS_DB
- python - python中的MIN函数-为什么会出现这个错误?
- vba - 有没有办法为表单的上下文写入/编辑一个只读的 Recordset 并使用数据?
- c# - 刷新和清除 Oxyplot 模型
- jsf - 阶段执行期间抛出异常:javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@7c8ce10f]
- reactjs - React Native:切换/(取消)隐藏组件 - 有条件的
- vb.net - 与电脑的竞争
- permissions - DNN 文件管理器在上传文件时显示“无权限”错误