簡體   English   中英

將列添加到 Pandas 中的特定級別數據透視表

[英]add columns to specific level pivot tables in pandas

我正在嘗試使用 Pandas 數據透視表來實現這種多索引形式。 在此處輸入圖片說明

因為原始數據是這樣的。

在此處輸入圖片說明

我用這個代碼table = pd.pivot_table(df, index=str(df.columns[0]), columns =list(df.columns[1:4]), values='Value')得到這個結果

在此處輸入圖片說明

但是現在我需要將這三列(Forcast、Tolerance、Baseline Forcast)添加到每個子產品的數據透視表的最詳細級別,就像在 ECo 下添加它們一樣,我嘗試了這個table[('OcP', 'CoC', 'tolerance')] = 0它起作用了,但像這樣將列添加到數據透視表的末尾。

在此處輸入圖片說明

那么如何添加它們並使它們屬於已經存在的同一個子類別,而不是像上面顯示的那樣在樞軸的末尾? 注意:我知道有類似的問題,但他們沒有解決我的問題。

table[('OcP', 'CoC', 'tolerance')] = 0

將 'OcP' 設置為 level1,將'CoC' 設置為 level2,將'tolerance' 設置為 level3。

你說你想要它們在 level3 而不是你必須像這樣設置它們:

table[(level1, level2, "CoC")]

您還需要在層次結構中向上指定索引。

多虧了borut,我終於找到了解決方案,他為它指明了方向,這個問題是使用table[('OcP', 'CoC', 'tolerance')] = 0然后應用pivot.sort_index(axis=1)到樞軸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM