【发布时间】:2017-05-03 17:56:44
【问题描述】:
我正在从一列存储为 JSON 的数据库(50k+ 行)中读取数据。我想将其提取到熊猫数据框中。 下面的 sn-p 工作正常,但效率相当低,并且在针对整个数据库运行时确实需要很长时间。 请注意,并非所有项目都具有相同的属性,并且 JSON 具有一些嵌套属性。
我怎样才能让它更快?
import pandas as pd
import json
df = pd.read_csv('http://pastebin.com/raw/7L86m9R2', \
header=None, index_col=0, names=['data'])
df.data.apply(json.loads) \
.apply(pd.io.json.json_normalize)\
.pipe(lambda x: pd.concat(x.values))
###this returns a dataframe where each JSON key is a column
【问题讨论】:
-
df.data.apply(lambda x: pd.Series(json.loads(x)))会做吗? -
您能否以不同的(任何一种标准)格式存储您粘贴的数据?
-
@JohnGalt: 有效,但这不会使字典变平
-
@MaxU:如果可能的话,我宁愿不更改抓取脚本