嵌套熊猫数据框的有效方法

时间:2019-11-10 20:25:53

标签: python pandas dataframe

我正在访问相当大的json文件系列,并将它们存储在pandas系列中,这是较大数据框的一部分。我想要在json中说几个字段,其中一些是嵌套的。我一直在使用json_normalize提取它们。然后将这些新字段与我的原始数据框合并的目标。

我的问题是,当我这样做时,我得到的是一个J长度序列,每个元素是1xK数据帧,而不是得到一个J行和K列的数据帧。我想知道是否存在一种有效的矢量化方法,可以将此嵌套系列/数据帧转换为常规数据帧,或者从头开始获取常规数据帧。

我已经使用map / lambda创建了我的嵌套系列。现在,我不再需要iteritems / append,但必须有一种更有效的方法。

url_base = 'http:\\foo.bar='
df['http'] = df['id'].map(lambda x: url_base + x)
df['json'] = df['http'].map(lambda x: nf.get_json(x))
nest_ser = df['json'].map(lambda x: json_normalize(x))
df = pd.DataFrame()
for index, item in nest_ser.iteritems():
   df = df.append(item)

json_normalize产生:

pd.Series([pd.DataFrame([col1,col2...]),[pd.DataFrame([col1,col2...]),[pd.DataFrame([col1,col2...]))

代替

pd.DataFrame([col1,col2...])

1 个答案:

答案 0 :(得分:0)

假设您在json_normalize中输出系列的名称是sr:

pd.concat(sr.tolist())