Прочитайте некоторые CSV-файлы и объедините их в один фрейм данных - PullRequest
0 голосов
/ 17 марта 2020

Я попытался написать фрагмент кода, как показано ниже. Основная цель - прочитать из 03-10-2020.csv в 03-16-2020.csv и объединить их в один фрейм данных, но только последний фрейм данных включен в фрейм данных. Как я могу это исправить?

week_array = []
path = 'URL_ADDRESS'


for i in range(10,17):
    dataset_date = "03-" + str(i) + "-2020.csv"
    url = path + dataset_date
    data_df = pd.read_csv(url, error_bad_lines=False, encoding = "utf-8" , index_col=None, header=0)
    week_array.append(data_df)
    week_df = pd.concat(week_array, axis=0, ignore_index=True)

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Вам необходимо выполнить глубокое копирование для data_df. data_df заменяется данными из нового файла каждый раз. надеюсь, что это решит проблему.

week_array = []
path = 'URL_ADDRESS'


for i in range(10,17):
    dataset_date = "03-" + str(i) + "-2020.csv"
    url = path + dataset_date
    data_df = pd.read_csv(url, error_bad_lines=False, encoding = "utf-8" , header=0)
    week_array.append(data_df.copy()) ## deep copy

#concat outside loop by change indentation (same indentation like `week_array`)
week_df = pd.concat(week_array,axis=0, ignore_index=True)
#^^^^
print(week_df)
0 голосов
/ 17 марта 2020

Используйте решение, упомянутое в комментарии, также возможно опустить некоторые параметры по умолчанию, такие как index_col=None и axis=0 в concat:

week_array = []
path = 'URL_ADDRESS'


for i in range(10,17):
    dataset_date = "03-" + str(i) + "-2020.csv"
    url = path + dataset_date
    data_df = pd.read_csv(url, error_bad_lines=False, encoding = "utf-8" , header=0)
    week_array.append(data_df)

#concat outside loop by change indentation (same indentation like `week_array`)
week_df = pd.concat(week_array, ignore_index=True)
#^^^^
#here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...