Сначала я думал, что файлы по какой-то причине разные, поэтому проверил количество строк, количество столбцов, тип данных, но Я не смог найти никаких различий. Файлы были написаны 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
...
Код: Выделить всё
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()
Код: Выделить всё
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)
Версия dask: 2024.10.0 и 2024.11.1,
Версия dask-expr: 1.1.18 и 1.1.16
Подробнее здесь: https://stackoverflow.com/questions/791 ... works-fine