首页 > 解决方案 > 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

笔记:

标签: pythonpandasdataframe

解决方案


您可以创建一个映射字典,其中键是名称,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

推荐阅读