读取多个CSV文件,然后根据文件名重命名文件

时间:2019-10-16 16:21:11

标签: python pandas dataframe

当前,以下代码读取路径中的所有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)

我得到的输出是数据帧的列表-但我希望每个这些数据帧都具有文件名的名称,例如回声

如何从字典访问每个数据框

1 个答案:

答案 0 :(得分:2)

正如您提到的,词典对于完成此任务很有用。例如:

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()查看字典中的所有键,并使用df_dict[key]选择给定的DataFrame。