将dict值元组拆分为python3中的df头和内容

问题描述 投票:2回答:1

我有一个字典,看起来像这样:

{'Customer A': {'key1':'value 1',
                'fees': [[0, 0.26], [5, 0.24], [10, 0.22], [25, 0.2],
                         [50, 0.18], [100, 0.16], [250, 0.14],
                         [500, 0.12], [1000, 0.1]],
                'key3':'value3'},
{'Customer B':...

如何获得如下所示的“费用”:

             0     5    10    25    50   100   250   500   1000  
Customer A  0.26  0.24  0.22  0.2  0.18  0.16  0.14  0.12  0.1
Customer B

客户成为索引,价值元组的第一部分成为标题

还在这里学习,所以所有的帮助都表示赞赏。不幸的是,这不像基本的字典/列表/ df操作...

python python-3.x pandas dictionary
1个回答
3
投票

使用dict comprehensionDataFrame.from_dictsort_index的最后排序列:

d = {'Customer A': {'key1':'value 1',
                'fees': [[0, 0.26], [5, 0.24], [10, 0.22], [25, 0.2],
                         [50, 0.18], [100, 0.16], [250, 0.14],
                         [500, 0.12], [1000, 0.1]],
                'key3':'value3'}, 'Customer B': {'key1':'value 1',
                'fees': [[0, 0.26], [5, 0.24], [10, 0.22], [25, 0.2],
                         [50, 0.18], [100, 0.16], [250, 0.14],
                         [500, 0.12], [1000, 0.1]],
                'key3':'value3'}}


df = pd.DataFrame.from_dict({k: dict(v['fees']) for k, v in d.items()}, orient='index')
print (df)
            0     50    100   5     1000  25    10    500   250 
Customer A  0.26  0.18  0.16  0.24   0.1   0.2  0.22  0.12  0.14
Customer B  0.26  0.18  0.16  0.24   0.1   0.2  0.22  0.12  0.14

df = df.sort_index(axis=1)
print (df)
            0     5     10    25    50    100   250   500   1000
Customer A  0.26  0.24  0.22   0.2  0.18  0.16  0.14  0.12   0.1
Customer B  0.26  0.24  0.22   0.2  0.18  0.16  0.14  0.12   0.1
© www.soinside.com 2019 - 2024. All rights reserved.