我对Python编程有点陌生。我有一个小小的要求,我需要以JSON格式列出给定两周内的所有客户及其金额。在
目前,我有一个这样的数据帧:
FortNight Amount Customer Parameter
Apr-2FN-2018 339632.00 10992 CustomerSales
Apr-2FN-2018 27282.00 10994 CustomerSales
Apr-2FN-2018 26353.00 10995 CustomerSales
Apr-2FN-2018 24797.00 11000 CustomerSales
Apr-2FN-2018 21093.00 10990 CustomerSales
应为JSON:
^{pr2}$我试过了:
dict(df.set_index('Parameter').groupby(level=0).apply(lambda x : ast.literal_eval(x.to_json(orient = 'records', date_format = "iso"))))
它检索以下内容:
[{'CustomerSales':
[{'Customer': '10992', 'Amount': 339632.00, 'FortNight': 'Apr-2FN-2018'}, {'Customer': '10994', 'Amount': 27282.00, 'FortNight': 'Apr-2FN-2018'},{'Customer': '10995', 'Amount': 26353.00, 'FortNight': 'Apr-2FN-2018'},
{'Customer': '11000', 'Amount': 24797.00, 'FortNight': 'Apr-2FN-2018'},
{'Customer': '10990', 'Amount': 21093.00, 'FortNight': 'Apr-2FN-2018'}]}]
我也试过别的办法,但没有成功。欢迎任何帮助。 提前谢谢!在
首先对Parameter和两周的列进行分组,并对结果分组的行使用
.to_dict()
来生成最内部的字典:这为您提供了一个在}列。如果需要转换值类型,请先对
Parameter
和FortNight
上具有多索引的序列,这些值是所有格式正确的列表,每个条目都有一个字典,其中包含Customer
和{r[['Customer', 'Amount']]
数据帧结果执行此操作,然后再对其调用to_dict()
。在然后,您可以unstack将序列放入一个数据帧中,为您提供一个嵌套参数->两周->详细信息结构;参数值变成列,每个客户/金额字典列表按两周编制索引:
^{pr2}$如果你把它变成一本字典,你就会得到一本基本上正确的词典:
但是对于您的格式,您需要将每列中的值转换为
{'FortNight': indexvalue, 'Details': value}
映射的列表,然后将整个结构转换为字典:这将给出您的最终输出:
如果需要JSON文档,请使用}。在
.to_json(orient='records')
,而不是{组合成一个表达式:
相关问题 更多 >
编程相关推荐