首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据字典键和列表值对数据进行分组?

如何根据字典键和列表值对数据进行分组?
EN

Stack Overflow用户
提问于 2019-08-13 11:57:54
回答 1查看 23关注 0票数 1

我有一个excel文件,它包含我们可以称之为串行前缀的内容。

这是我的意见。

代码语言:javascript
复制
PFX_CD   SERIAL             STATUS
PR7     PR700300        NB RJ SR XR RC NV
6QN     6QN00274        NB AC NV NS AA FA
MSR     MSR00443        NB AC NV NS AA FA
MSR     MSR00450        NB AC NV NS AA FA
ER9     ER900471        NB AC NV NS AA FA

如果我有下面这样的字典

代码语言:javascript
复制
manulocation = {
    '115':['PR7', '6QN'],
    '116':['MSR', 'TK9', 'GGG'],
    '117':['ER9', 'NNA',]
}

如何根据新列的键对数据进行分组?就像这样。

这是我追求的输出

代码语言:javascript
复制
PFX_CD   SERIAL             STATUS          Line
PR7     PR700300        NB RJ SR XR RC NV   115
6QN     6QN00274        NB AC NV NS AA FA   115
MSR     MSR00443        NB AC NV NS AA FA   116
MSR     MSR00450        NB AC NV NS AA FA   116
ER9     ER900471        NB AC NV NS AA FA   117
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-13 12:00:10

Series.map与交换的键和列表一起在二分法中用于“平面”字典,在所有列表中只有必要的唯一值:

代码语言:javascript
复制
#http://stackoverflow.com/a/31674731/2901002
d = {k: oldk for oldk, oldv in manulocation.items() for k in oldv}
print (d)

{'PR7': '115', '6QN': '115', 'MSR': '116', 
 'TK9': '116', 'GGG': '116', 'ER9': '117', 'NNA': '117'}

df['Line'] = df['PFX_CD'].map(d)
print (df)

  PFX_CD    SERIAL             STATUS Line
0    PR7  PR700300  NB RJ SR XR RC NV  115
1    6QN  6QN00274  NB AC NV NS AA FA  115
2    MSR  MSR00443  NB AC NV NS AA FA  116
3    MSR  MSR00450  NB AC NV NS AA FA  116
4    ER9  ER900471  NB AC NV NS AA FA  117
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57477270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档