Pandas:使用应用于将单列数组拆分为列时出现内存错误

问题描述 投票:0回答:1

我想知道是否有人对在较大数据上执行以下示例中相同的操作时出现的内存错误有快速解决方案?

示例:

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
pandas out-of-memory apply
1个回答
0
投票

我相信您可以使用:

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
© www.soinside.com 2019 - 2024. All rights reserved.