python - Pandas - 使用列中的值作为单独字典中的键
问题描述
我有一个字典,其中键是名称,值是另一个字典。例如:
dict1 = {name1: {...}, name2: {...},...}
df
我还有一个带有“A”和“B”列的 Pandas 数据框。我想使用这些列值作为dict1
. 例如,对于每一行,“A”中的值用作键dict1
,“B”中的值用作内部字典的键,结果放在 C 列中。
我正在尝试类似df[C] = dict1[df[A]][df[C]]
或df[C] = df[[A,B]].apply(lambda x,y: dict1[x][y])
但似乎没有任何效果的事情。理想情况下,我希望在没有类似df.itertuples()
.
示例 df 行(A,B):
'key1' | 'key2'
我想要以下(A,B,C):
'key1' | 'key2' | dict1['key1']['key2']
解决方案
你很接近 - 只需要修改你的代码apply
。尝试df['C'] = df.apply(lambda row: dict1[row.A][row.B], axis=1)
推荐阅读
- r - r 用另一个数据框列中的多个字符串替换数据框列中的多个字符串
- audio - 使用 amix 过滤器时 FFMPEG 错误的持续时间
- regex - JFlex 有符号整数正则表达式
- r - 如何在 R studio 中通过 URL 读取 excel 文件?它的 https
- python - python加载没有上下文管理器的文件内容
- javascript - 添加链接选择框以注册表格
- java - spring jdbctemplate 方法 queryForRowSet 为别名抛出表不存在错误
- r - 网页抓取 - 尝试一个 URL,如果失败,请尝试不同的 URL
- amazon-sagemaker - 在 AWS Sagemaker 的 jupyterlab 中显示 tqdm
- excel - Excel Power Query 不显示自动刷新或手动的新数据