2 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
我想將此系列分配給新列C4,僅分配給“ x”第一個(gè)索引。
一種方法是從索引級別映射序列。關(guān)鍵方法是pd.Index.get_level_values。然后覆蓋到NaN不需要映射的位置。
f['C4'] = df.index.get_level_values(1).map(series.get)
df.loc[df.index.get_level_values(0) != 'x', 'C4'] = np.nan
print(df)
C3 C4
C1 C2
x a 10 100.0
b 11 NaN
y a 12 NaN
b 13 NaN
z a 14 NaN
b 15 NaN
另外,您可以使用numpy.where:
df['C4'] = np.where(df.index.get_level_values(0) == 'x',
df.index.get_level_values(1).map(series.get),
np.nan)

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
你可以去pd.IndexSlice即
df.loc[pd.IndexSlice['x',series.index.tolist()],'C4'] = series.values
C3 C4
C1 C2
x a 10 100.0
b 11 NaN
y a 12 NaN
b 13 NaN
z a 14 NaN
b 15 NaN
添加回答
舉報(bào)