![](/img/trans.png)
[英]Assigning values to Pandas Multiindex DataFrame by index level
[英]Assigning a 2d array of values to a Pandas multiindex dataframe
我的計算結果最好以Pandas MultiIndex格式存儲。 出於具體目的,讓我們考慮以下形式(盡管實際結構是通過編程確定的)
X Y Z
DATE
2018-01-01 A NaN NaN NaN
B NaN NaN NaN
C NaN NaN NaN
2018-01-02 A NaN NaN NaN
B NaN NaN NaN
C NaN NaN NaN
我想將numpy數組輸出分配給特定的時間片。 說我有
output = np.array([[1,2,3],[2,2,1],[4,2,3]])
所以所需的輸出是
X Y Z
DATE
2018-01-01 A NaN NaN NaN
B NaN NaN NaN
C NaN NaN NaN
2018-01-02 A 1 2 3
B 2 2 1
C 4 2 3
我嘗試了pandas.IndexSlice,其中j是第j個時間片。
df.loc[pd.IndexSlice[j,:], :] = output
但這不起作用。 我也嘗試過用loc代替loc,但無濟於事。 在非MultiIndex數據框中,我可以將列表分配給DataFrame中的特定列,而不必分別分配每個元素。 有沒有一種方法可以將矩陣轉換為MultiIndex數據幀?
您的代碼工作正常。
演示:
In [70]: df.loc[pd.IndexSlice['2018-01-02', :], :] = output
In [71]: df
Out[71]:
X Y Z
DATE I2
2018-01-01 A NaN NaN NaN
B NaN NaN NaN
C NaN NaN NaN
2018-01-02 A 1.0 2.0 3.0
B 2.0 2.0 1.0
C 4.0 2.0 3.0
PS i在DATE
索引列為string
且datetime
dtype時測試了這兩個選項-在上述兩種情況下,以上代碼均能正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.