我有一個多索引資料框,設定如下:
index = pd.MultiIndex.from_product([['A','B','C'], ['x','y', 'z']])
multi_index = pd.DataFrame(np.nan, index=np.arange(10), columns=index)
產生以下輸出:
A B C
x y z x y z x y z
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN NaN NaN
我正在嘗試用值填充多索引資料框的值。作為一個玩具示例,我嘗試將 ['A','x',0] 的值更改如下:
multi_index['A']['x'].loc[0] = 65.2
但是,我收到了“SettingWithCopyWarning”,這對我來說很有意義。我也試過
multi_index['A'].iloc[[1],0] = 65.2
并收到同樣的警告。
有沒有一種方法可以逐個條目地更改多索引資料幀的值?IE 更改 ['A','x'] 的第 0 個索引?
uj5u.com熱心網友回復:
嘗試:
multi_index.loc[0, ('A', 'x')] = 65.2
您可以使用帶有loc
索引標簽的元組來訪問您的多索引列或行。
或者你可以iloc
像這樣使用整數索引位置選擇,例如 2 這里是第三列:
multi_index.iloc[0, 2] = 70.3
輸出:
A B C
x y z x y z x y z
0 65.2 NaN 70.3 NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN NaN NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/494385.html
上一篇:比較當前年份的一個月的值與上一年的值添加或減去多個引數
下一篇:創建帶狀(或帶狀)矩陣的有效方法