Изменить: я googled мой путь в https://stackoverflow.com/a/21232849/186078 . Однако в последнее время я нахожу быстрее выполнять любые манипуляции с помощью numpy, а затем назначая его один раз в dataframe, а не манипулируя самим фреймворком на итеративной основе, и, похоже, он тоже работает в этом решении.
искренне хочу, чтобы кто-то нажал эту страницу, чтобы рассмотреть этот подход, но не хочу прикладывать эту огромную часть кода в качестве комментария и сделать его менее читаемым.
Вы можете использовать numpy, чтобы действительно ускорить конкатенацию файловой системы.
import os
import glob
import pandas as pd
import numpy as np
path = "my_dir_full_path"
allFiles = glob.glob(os.path.join(path,"*.csv"))
np_array_list = []
for file_ in allFiles:
df = pd.read_csv(file_,index_col=None, header=0)
np_array_list.append(df.as_matrix())
comb_np_array = np.vstack(np_array_list)
big_frame = pd.DataFrame(comb_np_array)
big_frame.columns = ["col1","col2"....]
Статистика синхронизации:
total files :192
avg lines per file :8492
--approach 1 without numpy -- 8.248656988143921 seconds ---
total records old :1630571
--approach 2 with numpy -- 2.289292573928833 seconds ---
Наконец-то выяснили, как сделать эту работу.
Я изменил свое прямое исполнение sexec в jenkins, чтобы оно стало вызовом пакетного файла от Jenkins.
Затем в командном файле у меня есть код:
sexec -cmd=%1
if errorlevel 1000 goto success
goto end
:success
EXIT 0
:end
, который устанавливает уровень ошибки равным 0, когда sexec возвращает 1000
.