如何使数据帧列表可以基于python中的另一个名称列表重新分配

如何使数据帧列表可以基于python中的另一个名称列表重新分配,python,pandas,list,dataframe,Python,Pandas,List,Dataframe,我以列表的形式读入4个数据帧,并希望能够调用它们,就好像我单独读入它们一样,不想通过对每个数据帧使用name=df_list[0]来实现。如果我按照数据帧的命名顺序对名称列表进行索引,是否有一种方法可以自动为所有这些名称执行此操作。我在考虑使用基于索引匹配的if语句的for循环,但遇到了如何完成它的问题 files = glob('*.json') dataframes = [pd.read_json(f) for f in files] list_of_df_names = ['name1',

我以列表的形式读入4个数据帧,并希望能够调用它们,就好像我单独读入它们一样,不想通过对每个数据帧使用
name=df_list[0]
来实现。如果我按照数据帧的命名顺序对名称列表进行索引,是否有一种方法可以自动为所有这些名称执行此操作。我在考虑使用基于索引匹配的if语句的for循环,但遇到了如何完成它的问题

files = glob('*.json')
dataframes = [pd.read_json(f) for f in files]
list_of_df_names = ['name1', 'name2', 'name3', 'name4 ']
for df in dataframes:
    if dataframe.index() == list_of_df_names.index() # got stuck here can't seem to get to figure out the rest
编辑*03/01/2020 20:54
为了澄清这一点,我试图弄清楚我是否能够使最终结果基本上起作用,以便我能够做到
name1.head()

或者
name2.head()。是的,文件名与列表中的名称相同。没有特别的实际原因,只是好奇如果可能的话

如果名称是文件名,那么您可以这样做

df_dict={name:pd.read_json(name)表示glob('*.json')中的f)
叫他们的名字

df_dict['name1']=第一个数据帧

如果名称是文件名,则可以执行以下操作

df_dict={name:pd.read_json(name)表示glob('*.json')中的f)
叫他们的名字

df_dict['name1']=第一个数据帧

扩展Andy L的答案:

files = glob('*.json')
dataframes = [pd.read_json(f) for f in files]
list_of_df_names = ['name1', 'name2', 'name3', 'name4']
named_dfs = dict([n_df for n_df in zip(list_of_df_names, dataframes)])

扩展Andy L的答案:

files = glob('*.json')
dataframes = [pd.read_json(f) for f in files]
list_of_df_names = ['name1', 'name2', 'name3', 'name4']
named_dfs = dict([n_df for n_df in zip(list_of_df_names, dataframes)])

你可以把这两个词都拉上拉链,然后把它们变成一个单词

files = glob('*.json')

list_of_df_names = ['name1', 'name2', 'name3', 'name4 ']

data_dict = {name : pd.read_json(file) for name,file in zip(list_of_df_names,files)}

data_dict['name1']
另一种使用pathlib的方法,我们使用不带扩展名的文件名作为dict键。注意:只有当文件名是唯一的时,这才有效

fom pathlib import Path
path = 'path\to\jsons'

dict_ ={file.stem : pd.read_json(file) for file in Path(path).glob('*.json')}

你可以把这两个词都拉上拉链,然后把它们变成一个单词

files = glob('*.json')

list_of_df_names = ['name1', 'name2', 'name3', 'name4 ']

data_dict = {name : pd.read_json(file) for name,file in zip(list_of_df_names,files)}

data_dict['name1']
另一种使用pathlib的方法,我们使用不带扩展名的文件名作为dict键。注意:只有当文件名是唯一的时,这才有效

fom pathlib import Path
path = 'path\to\jsons'

dict_ ={file.stem : pd.read_json(file) for file in Path(path).glob('*.json')}

正如您的描述,您应该使用字典而不是列表来存储所有数据帧。在将它们存储到字典中之后,您只需通过
键调用它们,就像正常的字典访问一样,例如
数据帧['name1']
…作为您的描述,您应该使用字典而不是列表来存储所有数据帧。在将它们存储到字典中之后,您只需通过
键调用它们,就像正常的字典访问一样,例如
dataframes['name1']
。。。。