基于字典断言的列中的无序值



我有以下 df1:

xx  yy  zz
A  5   3   12
B  3   3   2
C  6   6   6

还有字典1:

{'A':'i','C':'jj',B:'kk'}

我想创建一个新的 df 列,其中包含与索引中出现的键关联的相应值。

这是我的代码:

list1=[]
for k, v in dictionary1.items():
if k in list(df1.index):
list1.append(dictionary1[k])
df1['oo']=list1

问题是列中分配的值是无序的。 所需的输出为:

xx  yy  zz   oo
A  5   3   12   i
B  3   3   2    kk
C  6   6   6    jj

使用Index.map按字典映射:

dictionary1 = {'A':'i','C':'jj','B':'kk'}
df1['oo'] = df1.index.map(dictionary1)
print (df1)
xx  yy  zz  oo
A   5   3  12   i
B   3   3   2  kk
C   6   6   6  jj

对于较旧的熊猫版本,请添加.get

df1['oo'] = df1.index.map(dictionary1.get)

最新更新