假设我有以下数据框df
,其中三个级别为多索引:
A B C
X Y Z
bar one a -0.007381 -0.365315 -0.024817
b -1.219794 0.370955 -0.795125
baz three a 0.145578 1.428502 -0.408384
b -0.249321 -0.292967 -1.849202
two a -0.249321 -0.292967 -1.849202
four a 0.21 -0.967123 1.202234
foo one b -1.046479 -1.250595 0.781722
a 1.314373 0.333150 0.133331
qux two c 0.716789 0.616471 -0.298493
b 0.385795 -0.915417 -1.367644
并说我有以下系列s
,其中两个级别作为多索引(请注意它共享前两个级别):
Flag
X Y
bar one True
baz three False
two True
four True
foo one False
qux two True
我想使用s
填充df
:
A B C F
X Y Z
bar one a -0.007381 -0.365315 -0.024817 True
b -1.219794 0.370955 -0.795125 True
baz three a 0.145578 1.428502 -0.408384 False
b -0.249321 -0.292967 -1.849202 False
two a -0.249321 -0.292967 -1.849202 True
four a 0.21 -0.967123 1.202234 True
foo one b -1.046479 -1.250595 0.781722 False
a 1.314373 0.333150 0.133331 False
qux two c 0.716789 0.616471 -0.298493 True
b 0.385795 -0.915417 -1.367645 True
我该怎么做?
答案 0 :(得分:1)
这不会特别快,可能是更好的东西,但应该工作。有关更多背景信息,请参阅切片MultiIndex的docs。
idx = pd.IndexSlice
for (lvl1, lvl2), value in s.iteritems():
df.loc[idx[lvl1, lvl2, :], 'Flag'] = value