我正在尝试在 pandas 中执行两个维度为 3383*192 和 5587*1487 的 pandas 文件的交叉连接,并收到:内存错误。 任何人都可以指导我如何在 python 中执行交叉连接并在 .csv 文件中获取完整输出(在 python 中进行批处理或使用整个数据集)
最佳答案
试试这个,
import pandas as pd
import numpy as np
import dask.dataframe as dd
sd = dd.from_pandas(df, npartitions=3)
df1 = pd.DataFrame(np.random.randint(0,100,size=(3383, 192)))
df2 = pd.DataFrame(np.random.randint(0,100,size=(5587, 1487)))
df1['key']=0
df2['key']=0
sd1 = dd.from_pandas(df1, npartitions=3)
sd2 = dd.from_pandas(df2, npartitions=3)
dd.merge(sd1, sd2, on=['key']).drop('key',1)
它正在机器上运行(8Gb RAM,Ubuntu 机器)
说明:
- 将 pandas 数据帧转换为 dask 数据帧
- 在两个 dfs 中为名为 key 的新列分配常量值
- 执行合并操作
关于python - 如何在python中执行两个大pandas文件的交叉连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59302151/