我有一个数据集,其中包含属于相同类别但具有不同名称的值。我正在考虑创建一个字典,其中一个键分配给多个值,然后用该键替换列中的值。这是我所拥有的以及我想要实现的目标。
定义字典
sspdict={'Eva':["M-EV", "G-EV"],'Re Sci': ['G-RESC', 'M-RESC', 'S-RESC', 'D-RESC'], 'Ed':['G-PO' , 'M-PO'], 'Global':['C-GCC', 'D-GCLA', 'C-LACL']}
数据集:
Col1 Col2 Col3
12 No M-EV
22 Yes G-EV
23 Yes G-RESC
35 No M-PO
34 Yes D-GCLA
46 No S-RESC
89 No G-PO
90 Yes C-GCC
期望的结果
Col1 Col2 Col3
12 No Eva
22 Yes Eva
23 Yes Re Sci
35 No Ed
34 Yes Global
46 No Re Sci
89 No Ed
90 Yes Global
您能帮忙吗?
最佳答案
让我们试试这个单行:
df.assign(Col3 = df['Col3'].apply(lambda x: [key for key, value in sspdict.items() if x in value][0]))
或者让我们使用生成器:
df.assign(Col3 = df['Col3'].apply(lambda x: next(key for key, value in sspdict.items() if x in value)))
输出:
Col1 Col2 Col3
0 12 No Eva
1 22 Yes Eva
2 23 Yes Re Sci
3 35 No Ed
4 34 Yes Global
5 46 No Re Sci
6 89 No Ed
7 90 Yes Global
关于python:将多个值分配给字典键并用键替换列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45830178/