我有一个excel文件,它包含我们可以称之为串行前缀的内容。
这是我的意见。
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如果我有下面这样的字典
manulocation = {
'115':['PR7', '6QN'],
'116':['MSR', 'TK9', 'GGG'],
'117':['ER9', 'NNA',]
}如何根据新列的键对数据进行分组?就像这样。
这是我追求的输出
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发布于 2019-08-13 12:00:10
将Series.map与交换的键和列表一起在二分法中用于“平面”字典,在所有列表中只有必要的唯一值:
#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 117https://stackoverflow.com/questions/57477270
复制相似问题