0
votes

Comment l'apporteriez-vous que une liste de fichiers de données peut être réaffectée en fonction d'une autre liste de noms dans Python

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


1 commentaires

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é comme accès dictionnaire normal tel que dataframes ['nom1'] ....


3 Réponses :


1
votes

Si les noms sont le nom du fichier, vous pouvez faire xxx

et appelez-les par nom xxx


0 commentaires

0
votes

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)])


0 commentaires

1
votes

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')}


0 commentaires