簡體   English   中英

將具有multiindex的pandas數據透視表轉換為嵌套字典

[英]Convert pandas pivot table with multiindex into nested dictionary

我瀏覽了與我的問題類似的各種答案,但是找不到適合我特定情況的解決方案。

我正在使用這樣的multiindex創建熊貓數據透視表:

df = pd.pivot_table(df, index  = ['clusterKey',
                                 'campaignTitle',
                                 'couponName'],
                        values = ['salesValue','budgetSpent'])

並且我想創建一個將索引轉換為嵌套字典的數據結構,因此可以像這樣訪問數據結構:

val = dict['clusterKeyA']['campaignTitleB']['couponNameC']['salesValue']

不知道是否可以使用這種格式,但是可以直接使用pd.DataFrame.to_dict() ,這非常簡單且簡短。 然后,您可以使用雙嵌套字典訪問值,其中第一級是三個索引的元組。

d = pt.to_dict("index")
d
{('A', 'a', 'd'): {'val1': 1.5, 'val2': 1.0},
 ('A', 'b', 'a'): {'val1': 3.0, 'val2': 4.0},
 ('B', 'a', 'a'): {'val1': 4.0, 'val2': 4.0},
 ('B', 'b', 'c'): {'val1': 5.0, 'val2': 1.0},
 ('B', 'c', 'c'): {'val1': 6.0, 'val2': 1.0},
 ('C', 'b', 'a'): {'val1': 7.0, 'val2': 3.0},
 ('C', 'b', 'b'): {'val1': 8.0, 'val2': 3.0},
 ('C', 'c', 'c'): {'val1': 9.0, 'val2': 1.0},
 ('C', 'c', 'd'): {'val1': 1.0, 'val2': 1.0}}

d[("A","a","d")]["val1"]
1.5

暫無
暫無

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

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