如何将一个由字典列表组成的列表转换为单个Pandas数据框?

4

我的先前代码是以下形式的一系列嵌套的pandas数据框的列表

rowResults = [ [df, df, df], [df, df, df], ... [df, df, df] ]
results=results.append(rowResults)

由于所有数据框具有相同的列,因此当我附加以上列表时,它将整个数据结构转换为具有与单个数据框相同列的单个数据框。

现在,由于性能问题,我已经将小型数据框转换为字典。如果我创建大量数据框,则会发现存储由pandas数据框使用的元数据信息时存在某种内存泄漏。当我使用字典时,不会出现这种情况。

我的新代码如下所示:

rowResults = [ [dict, dict, dict], [dict, dict, dict], ... [dict, dict, dict] ]
results=results.append(rowResults)

以上代码的效果与之前的不同,这是正常的。如何将上述字典列表转换为最终的Pandas数据帧,使其具有与字典键相同的列?对于字典,我的输出如下所示:

(Pdb) results
<class 'pandas.core.frame.DataFrame'>
Int64Index: 799 entries, 0 to 798
Data columns:
0                799  non-null values
1                799  non-null values
2                799  non-null values
column1            0  non-null values
column2            0  non-null values
column3            0  non-null values
column4            0  non-null values

请给予建议。
1个回答

5
我使用下面的代码实现了上述内容。请告诉我这是否是最佳方法。注意,下面的代码中每一行都是一个字典列表。
frames=[]
for row in self.rowResults:
    frames.append(pandas.DataFrame(row))
self.results = pandas.concat(frames)

谢谢!这对我有用,但是在一个大列表(>100K)中,它非常慢。似乎找不到更快的方法。 - postelrich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接