python - 如何在python中执行两个大pandas文件的交叉连接

标签 python pandas

我正在尝试在 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 机器)

说明:

  1. 将 pandas 数据帧转换为 dask 数据帧
  2. 在两个 dfs 中为名为 key 的新列分配常量值
  3. 执行合并操作

关于python - 如何在python中执行两个大pandas文件的交叉连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59302151/

相关文章:

pandas - 为每个 CohortGroup 分配适当的 CohortPeriod 计数

python - 如何为 Tkinter 程序实现默认 Windows 按钮?

python - GDB python API - 获取 gdb 的 python API 来打印有问题的行号

python - 氡变换 : optimize distance between source/detector and center of rotation

python - 使用PyInstaller编译后是否还需要安装python项目依赖?

python - 重命名默认ID python

python - 计算列中大于 x 但小于 y 的元素数

python - 使用 NumPy 函数计算 Pandas 的加权平均值

python - 类型错误 : expected string or bytes-like object – with Python/NLTK word_tokenize

python - pandas.Series.where 不适用于字典