J'ai lu dans 4 dataframes comme une liste et souhaitez pouvoir les appeler comme si je les lisez individuellement et que je ne veux pas le faire en utilisant nom = df_list [0] code > Pour chacun. Existe-t-il un moyen de faire cela pour toutes les personnes automatiquement si j'ai une liste de noms indexés dans l'ordre, je souhaite que les cadres de données soient nommés. Je pensais à une boucle à boucle avec une instruction IF basée sur les index correspondants, mais que vous avez bloqué comment la finition 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
3 Réponses :
Si les noms sont le nom du fichier, vous pouvez faire et appelez-les par nom p>
Développement de la réponse 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)])
Vous pouvez zipip itérables et les transformer en dict.
fom pathlib import Path
path = 'path\to\jsons'
dict_ ={file.stem : pd.read_json(file) for file in Path(path).glob('*.json')}
Comme votre description, vous devez utiliser la liste des dictionnaires pour stocker tous vos DataFrames. Après les stocker dans le dictionnaire, vous venez de les appeler à travers
clé code> comme accès dictionnaire normal tel quedataframes ['nom1'] code> ....