Проблема с Dask concat с DataFrames разной длины, pandas работает нормальноPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с Dask concat с DataFrames разной длины, pandas работает нормально

Сообщение Anonymous »

Я пытаюсь использовать dask, чтобы прочитать как минимум 12 файлов размером ок. 700 МБ каждый. Файлы создавались таким же образом, только с одним столбцом и ровно с таким же количеством строк (около 43 миллионов строк). Затем я хочу объединить кадры данных по оси = 1 в один, из которого я могу снова создать другой средний кадр данных по оси = 1. Когда я затем пытаюсь вычислить новый кадр данных, я получаю «ValueError: Concatenated DataFrames разной длины». Однако когда я делаю это с пандами, все работает нормально.
Сначала я думал, что файлы по какой-то причине разные, поэтому проверил количество строк, количество столбцов, тип данных, но Я не смог найти никаких различий. Файлы были написаны Tecplot360 с одинаковыми настройками, поэтому я не знаю, как что-то может быть иначе.
Затем я начал использовать repartition(npartitions=100) и reset_index (drop=True), который я нашел в другом посте, посвященном другой объединенной ошибке – это не помогло ни в сочетании, ни друг без друга, ни с несколькими разными npartitions. Я создал новые файлы самостоятельно (всего 5000 строк в столбце), в данном случае это сработало с помощью dask, так что, возможно, исходные файлы отличаются. Но потом я попробовал это с пандами, и это сработало. Если бы в файлах были различия, объединение не должно работать в пандах, верно?
Поскольку оно работает с пандами, конечно, я мог бы использовать панды, но это занимает гораздо больше времени, чем использование dask.
Пример:
Файлы имеют 7 строк заголовков, чего я не могу избежать, в строке 8 данные начинается и имеет в общей сложности 43 614 208 строк только с одним столбцом. Перед каждым значением есть 1 пробел, но нет конца.

Код: Выделить всё

 -2.5000000E-04
0.000000E+00
1.500000E-02
-7.300000E-05
...
Вот последний код, который я использовал с dask:

Код: Выделить всё

import dask.dataframe as da

file_paths = ['file_1.txt', 'file_2.txt']

ddf_file1 = da.read_csv(file_paths[0], skiprows=7, header=None)
ddf_file2 = da.read_csv(file_paths[1], skiprows=7, header=None)

ddf_f1 = ddf_file1.repartition(npartitions=100).reset_index(drop=True)
ddf_f2 = ddf_file2.repartition(npartitions=100).reset_index(drop=True)

combined_ddf = da.concat([ddf_f1, ddf_f2], axis=1)

mean_ddf = combined_ddf.mean(axis=1)

ddf = combined_ddf.compute()

Последняя (и единственная) версия кода pandas:

Код: Выделить всё

import pandas as pd

file_paths = ['file_1.txt', 'file_2.txt']

pdf_file1 = pd.read_csv(file_paths[0], skiprows=7, header=None, sep='\\s+')
pdf_file2 = pd.read_csv(file_paths[1], skiprows=7, header=None, sep='\\s+')

combined_pdf = pd.concat([pdf_file1, pdf_file2], axis=1)

df_pd_mean = combined_pdf.mean(axis=1)
Версия Python: 3.13,
Версия dask: 2024.10.0 и 2024.11.1,
Версия dask-expr: 1.1.18 и 1.1.16

Подробнее здесь: https://stackoverflow.com/questions/791 ... works-fine
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Добавить столбцы разной длины pandas
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как объединить и сопоставить фреймы данных (списки) разной длины в Python/Pandas
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как объединить и сопоставить фреймы данных (списки) разной длины в Python/Pandas
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Разделить столбец списков Pandas разной длины на несколько столбцов [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Разделить столбец списков Pandas разной длины на несколько столбцов [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»