python - Python,Pandas:将数据框中的单元格分配给组
问题描述
各位早上好!
我希望标题在某种程度上适合我的问题!?我有一个看起来像这样的数据框:
数据框(之前):
id | name | position
1 | jane doe | position_1
2 | john doe | position_2
3 | john smith | position_3
另外我有多个组列表:
group_1 = ['position_3', 'position_18', 'position_45']
group_2 = ['position_2', 'position_9']
group_7 = ['position_1']
现在我想知道用分配的组在我的数据框中实现另一列的最佳方法是什么?例如:
数据框(之后):
id | name | position | group
1 | jane doe | position_1 | group_7
2 | john doe | position_2 | group_2
3 | john smith | position_3 | group_1
笔记:
- 每个职位都是独一无二的,永远不会出现在一个以上的组中!
解决方案
您可以创建一个映射字典,其中键是名称,position
值是group
名称,然后map
将此字典放到列上position
:
dct = {'group_1': group_1, 'group_2': group_2, 'group_7': group_7}
mapping_dct = {pos:grp for grp, positions in dct.items() for pos in positions}
df['group'] = df['position'].map(mapping_dct)
>>> df
id name position group
0 1 jane doe position_1 group_7
1 2 john doe position_2 group_2
2 3 john smith position_3 group_1
推荐阅读
- perl - Perl:曾经工作的一行脚本的“修改只读值”
- ruby-on-rails - 从 select 语句中更改列的值
- python - 你如何获得嵌套循环中的数字?
- graph-algorithm - 最短路径树 (SPT) 中的最优根
- c# - 如何获取 .Net Core Web Api 默认模板的 Azure ActiveDirectory 令牌?
- xamarin.forms - 标签 TextProperty CoerceValue 委托未调用
- c++ - 问答程序在发布版本时崩溃,在调试版本中运行良好
- azure - 将 SSIS 包部署到 azure 时出错
- flutter - 如何将本地 json 列表解码为模型对象?
- java - jsp如何访问servlet