Python 当键的值在另一列中时,将字典的键放在DataFrame的列中
这是数据帧:Python 当键的值在另一列中时,将字典的键放在DataFrame的列中,python,pandas,dataframe,dictionary,Python,Pandas,Dataframe,Dictionary,这是数据帧: d_vals ={'vals': [i for i in range(1, 6)]} df = pd.DataFrame(d_vals) df vals 0 1 1 2 2 3 3 4 4 5 这是词典: d_groups = { 'a': [1, 2], 'b': [3, 5], 'c': [4] } 要点是当列vals的值在键的值中时,使用字典的键获取一个新列groups 最后的数据帧应如下所示: vals
d_vals ={'vals': [i for i in range(1, 6)]}
df = pd.DataFrame(d_vals)
df
vals
0 1
1 2
2 3
3 4
4 5
这是词典
:
d_groups = {
'a': [1, 2],
'b': [3, 5],
'c': [4]
}
要点是当列vals
的值在键的值中时,使用字典的键获取一个新列groups
最后的数据帧应如下所示:
vals groups
0 1 a
1 2 a
2 3 b
3 4 c
4 5 b
与展平字典一起使用以创建新字典:
#swap key values in dict
#http://stackoverflow.com/a/31674731/2901002
d = {k: oldk for oldk, oldv in d_groups.items() for k in oldv}
df['groups'] = df['vals'].map(d)
print (df)
vals groups
0 1 a
1 2 a
2 3 b
3 4 c
4 5 b