当前,以下代码读取路径中的所有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)
我得到的输出是数据帧的列表-但我希望每个这些数据帧都具有文件名的名称,例如回声
如何从字典访问每个数据框
答案 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。