Прочитайте несколько файлов CSV, затем переименуйте файлы, основываясь на именах файлов - PullRequest
1 голос
/ 16 октября 2019

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

Я хочу сохранить каждый кадр данных с именем файла, например, echo.csv

path = r'M:\Work\Experimental_datasets\device_ID\IoT_device_captures\packet_header_features' # use your path
all_files = glob.glob(os.path.join(path, "*.csv"))
li = []

for filename in all_files:
    df = pd.read_csv(filename, skiprows=15, sep='[|]',
        skipfooter=2, engine='python', header=None, 
        names=["sum_frame_len","avg_frame_len","max_frame_len","sum_ip_len"],
        usecols=[2,3,4,5]
        )
    li.append(df)

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

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

1 Ответ

2 голосов
/ 16 октября 2019

Как вы упомянули, словарь будет полезен для этой задачи. Например:

import os
all_files = glob.glob(os.path.join(path, "*.csv"))
df_dict = {}

for filename in all_files:

    df = pd.read_csv(filename, skiprows=15, sep='[|]',
        skipfooter=2, engine='python', header=None, 
        names=["sum_frame_len","avg_frame_len","max_frame_len","sum_ip_len"],
        usecols=[2,3,4,5]
        )

    name = os.path.basename(filename).split('.')[0]
    df_dict[name] = df

. Вам останется словарь df_dict, где ключи соответствуют имени файла, а значение соответствует данным в данном файле.

Вы можете просмотреть все ключи в словаре с помощью df_dict.keys() и выбрать данный DataFrame с помощью df_dict[key].

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