Python 使用循环将数据帧数据分配给数据帧标签

Python 使用循环将数据帧数据分配给数据帧标签,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧名称列表,我想将不同的数据帧数据分配给这些名称 filenames =[] for i in np.arange(1,7): a = "C:\Users\...........\Python code\Cp error for MPE MR%s.csv" %(i) filenames.append(a) dfs =[df1,df2,df3,df4,df5,df6] for i, j in enumerate(filenames): dfs[j]= pd

我有一个数据帧名称列表,我想将不同的数据帧数据分配给这些名称

filenames =[]

for i in np.arange(1,7):
    a = "C:\Users\...........\Python code\Cp error for MPE MR%s.csv" %(i)
    filenames.append(a)

dfs =[df1,df2,df3,df4,df5,df6]

for i, j in enumerate(filenames):
    dfs[j]= pd.DataFrame.from_csv(i,header=0, index_col=None)
但是,出现以下错误代码:

NameError: name 'df1' is not defined
我定义值列表的方式是否有问题?为什么列表中的值不能指定为变量

如何将以下代码放入循环中

df1 = pd.DataFrame.from_csv(filenames[0],header=0, index_col=None)
df2 = pd.DataFrame.from_csv(filenames[1],header=0, index_col=None)
df3 = pd.DataFrame.from_csv(filenames[2],header=0, index_col=None)
df4 = pd.DataFrame.from_csv(filenames[3],header=0, index_col=None)
df5 = pd.DataFrame.from_csv(filenames[4],header=0, index_col=None)
df6 = pd.DataFrame.from_csv(filenames[5],header=0, index_col=None)

似乎您需要听写理解,列出文件的一种可能方法是使用:

示例文件:

如果每个文件中有相同的列,可以通过以下方式创建一个大的
df

编辑:
更好的方法是使用以下数据帧:

具有全局变量的解决方案:

#for df0, df1, df2...
for i, fp in enumerate(files):
    print (fp)
    df = pd.read_csv(fp, header=0, index_col=None)
    globals()['df' + str(i)] = df

print (df1)
   a  b  c  d
0  0  9  6  5
1  1  6  4  2
数据帧列表和按位置选择的更好解决方案:

#for dfs[0], dfs[1], dfs[2]...
dfs = [pd.read_csv(fp, header=0, index_col=None) for fp in files]

print (dfs[1])
   a  b  c  d
0  0  9  6  5
1  1  6  4  2

似乎您需要听写理解,列出文件的一种可能方法是使用:

示例文件:

如果每个文件中有相同的列,可以通过以下方式创建一个大的
df

编辑:
更好的方法是使用以下数据帧:

具有全局变量的解决方案:

#for df0, df1, df2...
for i, fp in enumerate(files):
    print (fp)
    df = pd.read_csv(fp, header=0, index_col=None)
    globals()['df' + str(i)] = df

print (df1)
   a  b  c  d
0  0  9  6  5
1  1  6  4  2
数据帧列表和按位置选择的更好解决方案:

#for dfs[0], dfs[1], dfs[2]...
dfs = [pd.read_csv(fp, header=0, index_col=None) for fp in files]

print (dfs[1])
   a  b  c  d
0  0  9  6  5
1  1  6  4  2
为什么是这根绳子?为什么不应该是:

dfs =[]
是的,我想你交换了I和j,应该是这样的:

dfs.append(pd.DataFrame.from_csv(j,header=0, index_col=None))
枚举是多余的:

for f in filenames:
    dfs.append(pd.DataFrame.from_csv(f,header=0, index_col=None))
为什么是这根绳子?为什么不应该是:

dfs =[]
是的,我想你交换了I和j,应该是这样的:

dfs.append(pd.DataFrame.from_csv(j,header=0, index_col=None))
枚举是多余的:

for f in filenames:
    dfs.append(pd.DataFrame.from_csv(f,header=0, index_col=None))

你不想交换
i
j
吗?(假设您的意思是
enumerate
而不是
iterate
)什么是
iterate
?对不起,应该是枚举的。您不想交换
i
j
吗?(假设您的意思是
enumerate
而不是
iterate
)什么是
iterate
?对不起,应该是枚举的,但是我无法使用此方法编辑数据帧属性?我想是的。您有两个可能的选项-从所有文件创建一个大的
df
,或者创建df的dict。或者。。。我可以单独做。。df1=pd.DataFrame.from_csv(filenames[0],header=0,index_col=None)用于文件名范围(1,6),但我无法使用此方法编辑数据帧属性?我想是的。您有两个可能的选项-从所有文件创建一个大的
df
,或者创建df的dict。或者。。。我可以单独做。。文件名范围(1,6)的df1=pd.DataFrame.from_csv(文件名[0],头=0,索引_col=None)