我在同一文件夹中有多个文件,每个文件都具有相同的结构(两列带有数字)。
我创建文件列表。 我将每个文件中的数据加载到pandas数据框。 我想将这些数据框绘制在一个图上,但是我无法遍历列表中的数据框。
如果我手动输入确切的数据框名称,它将起作用。
import os
import fnmatch
import matplotlib.pyplot as plt
import pandas as pd
plt.close('all')
#path to data
path_data = ComputerPath+'/ela/bzdury/Data/'
#create list of files with s3 in name
patern = '*s3*'
filename_list =[]
listOfFiles = os.listdir(path_data)
for entry in listOfFiles:
if fnmatch.fnmatch(entry, pattern):
print (entry)
filename_list.append(entry)
#save data in separate dataframes, if "-" in filename replace it with"_"
df_names =[]
for file in filename_list:
name = file+'_df'
name = name.replace("-", "_")
df_names.append(name)
b = pd.read_table(path_data+file, comment='c', delim_whitespace=True,header=None)
globals()[name] = b
print(df_names)
#plot
fig = plt.figure(figsize=(12, 8))
for df_idx in df_names:
plt.scatter(df_idx[0],df_idx[1])
答案 0 :(得分:0)
我不确定我是否完全理解您如何存储数据帧。您是否考虑过将名称和数据框存储在字典中?这应该起作用
#save data in separate dataframes, if "-" in filename replace it with"_"
df_data = {}
for file in filename_list:
name = file+'_df'
name = name.replace("-", "_")
df_data[name] = pd.read_table(path_data+file, comment='c', delim_whitespace=True,header=None)
#plot
fig = plt.figure(figsize=(12, 8))
for name, data in df_data.items():
plt.scatter(data[0],data[1])