从2700万行创建pandas数据帧

时间:2017-04-28 14:21:59

标签: python pandas dataframe

我有一个包含2700万个元组的列表,现在我想从这个元组创建一个数据帧,但问题是,它需要花费太多时间而系统会卡住。

单个元组中的数据为('C0000005', 'RB', 'C0036775', '') 并且列表是包含appx的tablelist。 2700万行,这就是我创建数据帧的方式。

df_table = pd.DataFrame(tablelist,columns= ['a','b','c','d'])

如何以有效的方式创建数据框?

1 个答案:

答案 0 :(得分:1)

确保您的机器无法更换。

这是我的时间:

In [175]: l = [('C0000005', 'RB', 'C0036775', '')] * 27000000

In [176]: len(l)
Out[176]: 27000000

In [177]: %timeit pd.DataFrame(l, columns=list('abcd'))
1 loop, best of 3: 2.95 s per loop
In [179]: df = pd.DataFrame(l, columns=list('abcd'))

In [180]: df.shape
Out[180]: (27000000, 4)

In [181]: df.memory_usage()
Out[181]:
Index           80
a        216000000
b        216000000
c        216000000
d        216000000
dtype: int64

In [182]: df.memory_usage().sum()
Out[182]: 864000080

In [183]: df.memory_usage().sum()/1024**3
Out[183]: 0.8046627789735794