Je voulais enregistrer toutes les variables ensemble facilement, j'ai donc créé un tel programme. Il peut être enregistré en appliquant un tableau à deux dimensions.
... j'ai remarqué après avoir écrit, mais la méthode d'ajout est peut-être meilleure [Si vous êtes occupé, passez au post-scriptum](# postscript) [Si vous voulez simplement enregistrer toutes les variables, utilisez la méthode aneth](méthode #dill)
Avec la méthode append, une erreur s'est produite dans la relation de type ou les données que vous avez essayé d'utiliser. Je n'ai pas eu d'erreur lors de l'utilisation de DataFrame, donc Il peut ne pas être inutile d'insérer un DataFrame une fois.
import pandas as pd
Première importation de pandas
# ---Définir des variables pour les tests---
a ,b,c,d = 1,2,3,4
xx = [3,6,8]
yy = [5,8,2]
zz = [8,2,8]
Enregistrez cette fonction, array
# ---Collectez les variables dans le dataframe et enregistrez le CSV---
def getName(obj):
return [k for k, v in globals().items() if id(obj) == id(v)][0] #Renvoie le nom de la variable avec str
Obtenez le nom de la variable sous forme de str en utilisant cette fonction C'est presque un copier-coller de cet article Cliquez ici pour plus de détails
df = pd.DataFrame()
datas1 = [xx,yy,zz] #En utilisant le nom de la variable comme en-tête, assemblez un tableau unidimensionnel dans une trame de données
for data in datas1:
df = pd.concat([df, pd.DataFrame({getName(data):data})],axis=1) # {}Ajouter un dataframe avec concat en utilisant set
Créez un DataFrame basé sur {name: value}
et enregistrez de plus en plus dans df
avec concat.
En insérant axis = 1, il sera ajouté horizontalement
datas2 = [a,b,c,d]#Tout en utilisant le nom de la variable comme en-tête, regroupez les variables dans un dataframe
for data in datas2:
df = pd.concat([df, pd.DataFrame({getName(data):[data]})],axis=1)# {}Ajouter un dataframe avec concat en utilisant set
Faites la même chose qu'avant Puisque la «valeur» de «{nom: valeur}» doit être un tableau, la «valeur» est «[données]».
df.to_csv('test.csv')
print(df)
del df
Enregistrez et affichez.
Puisque df
a tendance à être utilisé à divers endroits, je vais le supprimer pour le moment.
Vous pouvez voir qu'il est affiché et enregistré correctement dans le tableau ci-dessous.
xx yy zz a b c d
0 3 5 8 1.0 2.0 3.0 4.0
1 6 8 2 NaN NaN NaN NaN
2 8 2 8 NaN NaN NaN NaN
Code source
import pandas as pd
# ---Définir des variables pour les tests---
a ,b,c,d = 1,2,3,4
xx = [3,6,8]
yy = [5,8,2]
zz = [8,2,8]
# ---Collectez les variables dans le dataframe et enregistrez le CSV---
def getName(obj):
return [k for k, v in globals().items() if id(obj) == id(v)][0] #Renvoie le nom de la variable avec str
df = pd.DataFrame()
datas1 = [xx,yy,zz] #En utilisant le nom de la variable comme en-tête, assemblez un tableau unidimensionnel dans une trame de données
for data in datas1:
df = pd.concat([df, pd.DataFrame({getName(data):data})],axis=1) # {}Ajouter un dataframe avec concat en utilisant set
datas2 = [a,b,c,d]#Tout en utilisant le nom de la variable comme en-tête, regroupez les variables dans un dataframe
for data in datas2:
df = pd.concat([df, pd.DataFrame({getName(data):[data]})],axis=1)# {}Ajouter un dataframe avec concat en utilisant set
df.to_csv('test.csv')
print(df)
del df
Écrivez directement dans csv
# ---Définir des variables pour les tests---
a ,b,c,d = 1,2,3,4
xx = [3,6,8]
yy = [5,8,2]
zz = [8,2,8]
import csv
# ---Sélectionnez une variable et enregistrez csv---
def getName(obj):
return [k for k, v in globals().items() if id(obj) == id(v)][0] #Renvoie le nom de la variable avec str
with open('test2.csv','a', newline="") as f:
datas = [xx,yy,zz,]
writer = csv.writer(f)
for data in datas:
writer.writerow([getName(data)]+data)
datas = [a,b,c,d]
for data in datas:
writer.writerow([getName(data)]+[data])
La division des cas consiste à convertir une seule variable en type de liste
Sortie test2.csv
xx,3,6,8
yy,5,8,2
zz,8,2,8
a,1
b,2
c,3
d,4
sauvegarder
import dill
dill.dump_session('session.pkl')
Lis
import dill
dill.load_session('session.pkl')
Toutes les variables peuvent être utilisées telles quelles.
Recommended Posts