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

Posted

技术标签:

【中文标题】在python3中将dict值元组拆分为df标头和内容【英文标题】:Split dict value tuples into df headers and contents in python3 【发布时间】:2018-08-10 20:06:53 【问题描述】:

我有一本像这样的字典:

'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':...

如何获得如下所示的“费用”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

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

仍然在这里学习,因此感谢所有帮助。不幸的是,这感觉不像是基本的字典/列表/df 操作...

【问题讨论】:

【参考方案1】:

dict comprehensionDataFrame.from_dict 一起使用,最后按sort_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

【讨论】:

完美!谢谢耶斯瑞尔! 如果客户没有“费用”值,我该如何避免错误?在这种情况下,理解迭代只会转到下一个客户 @ACF 你能创建新问题吗?现在我离线了,只能打电话。谢谢。 @jazrael 新问题在这里:link

以上是关于在python3中将dict值元组拆分为df标头和内容的主要内容,如果未能解决你的问题,请参考以下文章

Python中dict的元组列表[重复]

检查值元组是不是为默认值

将键值元组包转换为 Apache Pig 中的映射

在 PySpark 中将 Python Dict 转换为稀疏 RDD 或 DF

C#关键字扫盲——Tuple(元组类) ValueTuple(值元组)

详解C# Tuple VS ValueTuple(元组类 VS 值元组)