Я работаю над выполнением вычислений с большими файлами размером 6 ГБ каждый и наткнулся на панды Modin, которые, как я слышал, оптимизированы по сравнению с пандами.
Мне нужно прочитать CSV-файл по частям и выполнить над ним вычисления, добавить его в большой фрейм данных и снова преобразовать большой фрейм данных в файл CSV.
Это отлично работает с Pandas. Но обработка даже небольших файлов занимает слишком много времени. И я даже не могу представить это для файлов 6GB.
Однако, когда я пытаюсь сделать то же самое с modin pandas, он не может добавить кадр данных в большой кадр данных, который я хочу преобразовать в файл csv.
Может ли кто-нибудь предложить альтернативу этому или решение.
Python - 3.6
Pandas - 0.24.2
Modin Pandas - 0.5.2
Код.
import modin.pandas as pd
def calculate_visit_prioritization(df):
# calculations here
return df
def get_all_data():
big_df = pd.DataFrame()
for df in pd.read_csv('./samp.csv', chunksize=50):
big_df = big_df.append(calculate_visit_prioritization(df))
big_df.to_csv('samps3.csv', index=False)
def main():
get_all_data()
if __name__ == '__main__':
main()
Ошибка при использовании Modin pandas для добавления фреймов данных.
UserWarning:
DataFrame.append
для пустого DataFrame по умолчанию для реализации pandas.Файл "/home/tony/.local/lib/python3.6/site-packages/pandas/core/reshape/concat.py", строка 289, в
__init__
поднять TypeError (msg)TypeError: невозможно объединить объект типа ""; допустимы только объекты pd.Series, pd.DataFrame и pd.Panel (устаревшие)
Я прошел по этой ссылке, где сказано, что функция .append()
в pandas частично ( P ) реализована в Modin.