Вопрос о кадре данных: объединение в файл базы данных SQL - PullRequest
0 голосов
/ 31 октября 2018

Продолжение разговора с: Конкатенация дублированных больших фреймов данных: MemoryError

В настоящее время я экспортирую свой фрейм данных в серию CSV и добавляю в них новые данные. Когда я возвращаю полный фрейм данных обратно в Python, он кажется слишком большим для моей оперативной памяти. Более эффективно использовать базу данных SQL? И если так, как я мог бы написать цикл для перемещения моего фрейма данных в базу данных SQL при добавлении дополнительных полей для месяца и года? Мне нужно будет иметь возможность включить диапазон для года, который использует минимум и максимум (то есть диапазон (2019, 2030)).

import pandas as pd
columns = ['ID','Revenue','Fiscal Year']
ID = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Revenue = [1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800]
d = {'ID': ID, 'Revenue': Revenue}
df = pd.DataFrame(d)

# Add Month to Dataframe
month_file = 'df.csv'

Apr_df = df
Apr_df['Month'] = 4
Apr_df.to_csv(month_file)
del Apr_df

May_df = df
May_df['Month'] = 5
May_df.to_csv(month_file, mode = 'a', header = False)
del May_df

Jun_df = df
Jun_df['Month'] = 6
Jun_df.to_csv(month_file, mode = 'a', header = False)
del Jun_df

df = pd.read_csv(month_file, encoding = 'latin1', chunksize = 1000)
df = pd.concat(df, ignore_index = True)

fy19_df = df
fy19_df['Fiscal Year'] = 2019
fy19_df.to_csv(month_file)
del fy19_df

fy20_df = df
fy20_df['Fiscal Year'] = 2020
fy20_df.to_csv(month_file, mode = 'a', header = False)
del fy20_df

fy21_df = df
fy21_df['Fiscal Year'] = 2021
fy21_df.to_csv(month_file, mode = 'a', header = False)
del fy21_df

fy22_df = df
fy22_df['Fiscal Year'] = 2022
fy22_df.to_csv(month_file, mode = 'a', header = False)
del fy22_df

df = pd.read_csv(month_file, encoding = 'latin1', chunksize = 1000)
df = pd.concat(df, ignore_index = True)

print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...