我有以下 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)