【发布时间】:2018-12-11 12:00:27
【问题描述】:
我正在阅读下面的 json 结构
{"response":
{"GDUEACWF":
{"2018-06-01":
[{"groupwide_market":"Developed Markets",
"weights":0.8794132316432903},
{"groupwide_market":"Developed Markets",
"weights":0.8794132316432903}],
"2018-06-02":
[{"groupwide_market":"Developed Markets",
"weights":0.8794132316432903},
{"groupwide_market":"Developed Markets",
"weights":0.8794132316432903}]}}}
并尝试将其展平为以下格式的 Pandas 数据框。
|data_date |groupwide_market |weights
|2018-06-01 |Developed Markets |0.08794132316432903
我尝试通过使用以下代码遍历每个 k,v 对中的每个列表来做到这一点。它确实有效,但是它也很慢。生成 10 万行数据需要 30 多分钟。
df = pd.DataFrame()
#concatenating each line of the list within each dict cell
for k1,v1 in data['response'][mnemonic].items():
for ele in v1:
df_temp = pd.concat({k2: pd.Series(v2) for k2, v2 in ele.items()}).transpose()
df_temp['data_date'] = k1
df = df.append(df_temp,ignore_index=True)
df.columns = [x[0] for x in df.columns]
我想知道是否有更有效的方法来做到这一点?尝试阅读 json_normalize 的文档和示例,但无法确定在这种情况下应用它。
提前致谢!!
【问题讨论】:
标签: python json pandas dictionary nested