所以我用 MultiIndex 创建了一个数据框
df = pd.DataFrame({
'C1': ['x', 'x', 'y', 'y', 'z', 'z'],
'C2': ['a', 'b', 'a', 'b', 'a', 'b'],
'C3': [10, 11, 12, 13, 14, 15]})
df.set_index(['C1', 'C2'], inplace=True)
Run Code Online (Sandbox Code Playgroud)
我得到以下数据框
C3
C1 C2
x a 10
b 11
y a 12
b 13
z a 14
b 15
Run Code Online (Sandbox Code Playgroud)
我也有一个具有相同索引的系列C2:
series = pd.Series([100], index=['a'])
Run Code Online (Sandbox Code Playgroud)
我想将此系列分配给一个新列C4,仅分配给“x”第一个索引。如果我使用它,它会起作用.assign,但它返回一个副本:
df.loc['x'].assign(C4=series)
Run Code Online (Sandbox Code Playgroud)
我得到
C3 C4
C2
a 10 100.0
b 11 NaN
Run Code Online (Sandbox Code Playgroud)
但我未能将其分配给原始数据
df.loc['x'] = df.loc['x'].assign(C4=series)
Run Code Online (Sandbox Code Playgroud)
产量
C3
C1 C2 …Run Code Online (Sandbox Code Playgroud)