Имам списък от 27 милиона типа и сега искам да създам информационна рамка от тази табла, но проблемът е, че отнема твърде много време и системата се заби.
Данните в една и съща тона са ("C0000005", "RB", "C0036775", "")
и списъкът е табличен списък, който съдържа appx. 27 милиона реда и така създавам информационната рамка.
df_table = pd.DataFrame(tablelist,columns= ["a","b","c","d"])
как мога да създам рамка за данни по ефективен начин?
Отговори:
1 за отговор № 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