Python Pandas возвращает ошибку памяти при слиянии - PullRequest
1 голос
/ 17 октября 2019

Я делаю Pandas Dataframe Merge в Python 3.7 64 бит

У меня есть два файла CSV, которые я читаю в pandas.

targeted = pd.read_csv('targeted.csv', low_memory=False, index_col=None)
size 74520 Ko

Unnamed: 0       394320
customer_id      113313
variable         394320
Master_Master    394320
dtype: int64


Melt_UNIVERSE = pd.read_csv('meltuniverse.csv', low_memory=False, index_col=None)
size 13520 Ko
customer_id        571493
variable           574121
value              574119
companyname        574121
targeted_period    574121
dtype: int64

Это мое слияние Pandas:

targeted = pd.merge(targeted, Melt_UNIVERSE, on='customer_id', how='outer')

Это мой код ошибки. Почему у Python недостаточно памяти для таких небольших наборов данных?

Я выполняю тот же код для файла из 4 миллионов строк, и у меня нет проблем с памятью. Почему эти два маленьких файла возвращают мне проблемы с памятью?

File "C:\ProgramData\Anaconda\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/Dell/Desktop/KMIST DATABASE/KMIST_DATA/Main_Script_DATABASE_1003319.py", line 655, in <module>
    targeted = pd.merge(targeted, Melt_UNIVERSE, on='customer_id', how='outer')

  File "C:\ProgramData\Anaconda\lib\site-packages\pandas\core\reshape\merge.py", line 83, in merge
    return op.get_result()

  File "C:\ProgramData\Anaconda\lib\site-packages\pandas\core\reshape\merge.py", line 642, in get_result
    join_index, left_indexer, right_indexer = self._get_join_info()

  File "C:\ProgramData\Anaconda\lib\site-packages\pandas\core\reshape\merge.py", line 859, in _get_join_info
    (left_indexer, right_indexer) = self._get_join_indexers()

  File "C:\ProgramData\Anaconda\lib\site-packages\pandas\core\reshape\merge.py", line 838, in _get_join_indexers
    self.left_join_keys, self.right_join_keys, sort=self.sort, how=self.how

  File "C:\ProgramData\Anaconda\lib\site-packages\pandas\core\reshape\merge.py", line 1320, in _get_join_indexers
    return join_func(lkey, rkey, count, **kwargs)

  File "pandas\_libs\join.pyx", line 200, in pandas._libs.join.full_outer_join

  File "pandas\_libs\join.pyx", line 206, in pandas._libs.join._get_result_indexer

  File "C:\ProgramData\Anaconda\lib\site-packages\pandas\core\algorithms.py", line 1714, in take_nd
    out = np.empty(out_shape, dtype=dtype, order="F")

MemoryError 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...