我有一个复杂的字典,我想将其解压到一个DataFrame中,但我无法理解它。我想把包含在‘DataFrame’中的数据(即所有的数据都包含在[]中)解压成一个单独的行( 'rows‘),我已经尝试了在字典中访问的许多组合,但都没有效果。
以下是数据:
{None: {'transfers': {'1': {'rows': [{'pointOfSaleID': 2,
'initialAmount': '£0.00',
'opened': 'xx, 27/11/2018 11:58',
'dayIncome': '£336.23',
'cash': [{'dateTime': '27/11/2018 18:23',
'employeeName': 'xx',
'sum': '-£45.00',
'comment': 'cabs to collect in store stock\nEvents'}],
'cashTotal': '£291.23',
'cashExpected': '£291.23',
'closed': 'xx, 27/11/2018 20:54',
'banked': '£0.00',
'left': '£0.00',
'totalCounted': '£0.00',
'difference': '-£291.23',
'varianceReason': '',
'totalTransactions': 48},
{'pointOfSaleID': 2,
'initialAmount': '£0.00',
'opened': 'xx, 28/11/2018 09:16',
'dayIncome': '£35.94',
'cashTotal': '£35.94',
'cashExpected': '£35.94',
'closed': '----',
'banked': '----',
'left': '----',
'totalCounted': '----',
'difference': '----',
'varianceReason': '',
'totalTransactions': 3}...]如何仅访问行中的数据并将其解压缩到DataFrame中?
发布于 2018-11-28 21:14:04
假设您的字典名为'd',这应该会得到嵌套字典的列表,每条记录(每行)都有一个字典:
d[None]['transfers']['1']['rows']您应该能够将其传递到DataFrame构造函数中:
df = pd.DataFrame(d[None]['transfers']['1']['rows'])如果这样做有效,您最终将在列cash的每个条目中嵌套字典。为了解决这个问题,我建议您使用[json_normalize](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.json.json_normalize.html),这个SO线程可能会帮助您理解它:pandas.io.json.json_normalize with very nested json
发布于 2018-11-28 20:48:09
from_dict函数应该适用于您的情况。下面的文档相当不错:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.from_dict.html
https://stackoverflow.com/questions/53519620
复制相似问题