我想知道是否有人对在较大数据上执行以下示例中相同的操作时出现的内存错误有快速解决方案?
示例:
import pandas as pd
import numpy as np
nRows = 2
nCols = 3
df = pd.DataFrame(index=range(nRows ), columns=range(1))
df2 = df.apply(lambda row: [np.random.rand(nCols)], axis=1)
df3 = pd.concat(df2.apply(pd.DataFrame, columns=range(nCols)).tolist())
是在创建df3时出现内存错误。
示例中的DF:
df
0
0 NaN
1 NaN
df2
0 [[0.6704675101784022, 0.41730480236712697, 0.5...
1 [[0.14038693859523377, 0.1981014890848788, 0.8...
dtype: object
df3
0 1 2
0 0.670468 0.417305 0.558690
0 0.140387 0.198101 0.800745
我相信您可以使用:
df3 = pd.DataFrame(np.random.rand(nRows, nCols))
或:
df = pd.DataFrame(index=range(nRows), columns=range(1))
df3 = pd.DataFrame([np.random.rand(nCols) for x in df.index])
print (df3)
0 1 2
0 0.328794 0.940175 0.038026
1 0.776845 0.384645 0.716724