Как прочитать каждый файл из папки и создать отдельные фреймы данных для каждого файла? - PullRequest
1 голос
/ 09 июля 2019

Я пытаюсь получить свой код для чтения папки, содержащей различные файлы. Я надеялся, что Jupyter прочитает каждый файл в этой папке и создаст отдельные кадры данных, взяв имена файлов в качестве имен данных.

Пока у меня есть код:

import glob

path = r'C:\Users\SemR\Documents\Jupyter\Submissions' 
all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0, usecols=['Date', 'Usage'])
    li.append(df)

frame = pd.concat(li, axis=0, ignore_index=True)

Этот код объединяет данные, однако мне нужны отдельные кадры данных для каждого, чтобы я мог хранить значения отдельно. Есть ли что-то, что я могу использовать вместо этого?

Вот примеры того, как выглядят файлы CSV: enter image description here

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

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Из вопроса, который я могу предложить, вы указали, что в списке хранятся разные фреймы данных.

import glob

path = r'C:\Users\SemR\Documents\Jupyter\Submissions' 
all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0, usecols=['Date', 'Usage'])
    li.append(df)

for dataframes in li:
    """ For getting the mean of a specific column """
    df.loc[:,"Usage"].mean()
1 голос
/ 09 июля 2019

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

Базовое имя каждого имени файла может быть извлечено с использованием комбинации os.path.basename() и os.path.splitext().

Например:

d = {os.path.splitext(os.path.basename(f))[0] : pd.read_csv(f) for f in glob.glob('*test*.csv')} 

Кроме того, использование *test* позволит избежать необходимости использования if в понимании.

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