gpt4 book ai didi

python - Pandas Concat 遇到内存错误

转载 作者:行者123 更新时间:2023-11-28 18:00:59 27 4
gpt4 key购买 nike

我正在尝试预处理数据以供进一步分析。首先,我从 csv 文件 ( x ) 中读取数据。

然后我把它分成三个部分。最后,我需要使用 get_dummiesconcatsum 转换一个数组以获得 groupby 的结果。

import pandas as pd

RawData_v2_clear=pd.read_csv('C:\\Users\\User\\Documents\\top200users_filtered.csv',
sep=';', usecols = ['Username', 'Code', 'Object'], error_bad_lines=False,
encoding='latin-1')

dfU = RawData_v2_clear['Username']
dfT = RawData_v2_clear['Code']
dfO = RawData_v2_clear['Object']

del RawData_v2_clear, dfO (to free up some memory)

df_newT = pd.concat([dfU,pd.get_dummies(dfT)],axis=1)

df_new_gbyT = df_newT.groupby('Username').sum()

Raw_Data_V2_clear 具有形状(约 1100 万行 x 3 列)。

Error:
File "c:\Users\User\Desktop\Faulty_Skript.py", line XXX, in <module>
df_newT = pd.concat([dfU,pd.get_dummies(dfT)],axis=1).sum()
File "C:\Users\User\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", line 866, in get_dummies
dtype=dtype)
File "C:\Users\User\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", line 963, in _get_dummies_1d
dummy_mat = np.eye(number_of_cols, dtype=dtype).take(codes, axis=0)
MemoryError

在另一个系统上,此操作需要一些时间,但在没有内存错误 的情况下完成。也许有人有解决此内存问题的好主意?也许 append 比 concat 对内存更友好?但是,我在当前系统上的附加实现也失败了。

非常感谢!

最佳答案

IIUC,尝试 dtype='category' read_csv 方法和 pandas.crosstab 中的参数相反:

import pandas as pd

RawData_v2_clear=pd.read_csv('C:\\Users\\User\\Documents\\top200users_filtered.csv',
sep=';', usecols = ['Username', 'Code', 'Object'], error_bad_lines=False,
encoding='latin-1', dtype='category')

df_new_gbyT = pd.crosstab(RawData_v2_clear.Username, RawData_v2_clear.Code)

关于python - Pandas Concat 遇到内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55740613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com