Я обрабатываю большой набор данных размером не менее 8 ГБ, используя pandas.
Я столкнулся с проблемой при чтении всего набора, поэтому я читаю фрагмент файла по фрагменту.
В моем понимании, фрагментация всего файла создаст много разных фреймов данных. Таким образом, используя мою существующую подпрограмму, это удаляет только дублирующиеся значения в этом определенном кадре данных, а не дубликаты во всем файле.
Мне нужно удалить дубликаты во всем этом наборе данных на основе столбца ['Уникальные ключи'].
Я пытался использовать pd.concat
, но также столкнулся с проблемой с памяти, поэтому я попытался записать файл в CSV-файл и добавить все результаты кадров данных на нем.
После запуска кода файл не сильно уменьшается, поэтому я считаю, что мое предположение верно, что текущая процедура не удаляет все дубликаты на основе всего набора данных.
I ' Я новичок ie в Python, так что было бы действительно полезно, если бы кто-то мог указать мне правильное направление.
def removeduplicates(filename):
CHUNK_SIZE = 250000
df_iterator = pd.read_csv(filename, na_filter=False, chunksize=CHUNK_SIZE,
low_memory=False)
# new_df = pd.DataFrame()
for df in df_iterator:
df = df.dropna(subset=['Unique Keys'])
df = df.drop_duplicates(subset=['Unique Keys'], keep='first')
df.to_csv(join(file_path, output_name.replace(' Step-2', '') +
' Step-3.csv'), mode='w', index=False, encoding='utf8')