Ich wollte alle Variablen einfach zusammen speichern, also habe ich ein solches Programm erstellt. Es kann durch Anwenden eines zweidimensionalen Arrays gespeichert werden.
... Ich habe es nach dem Schreiben bemerkt, aber die Methode des Hinzufügens kann besser sein [Wenn Sie beschäftigt sind, springen Sie zum Postscript](# Postscript) [Wenn Sie einfach alle Variablen speichern möchten, verwenden Sie die Dill-Methode](# Dill-Methode)
Bei der Append-Methode ist ein Fehler in der Typbeziehung oder den Daten aufgetreten, die Sie verwenden wollten. Ich habe bei der Verwendung von DataFrame keinen Fehler erhalten Es ist möglicherweise nicht bedeutungslos, einen DataFrame einmal einzufügen.
import pandas as pd
Zuerst Pandas importieren
# ---Definieren Sie Variablen zum Testen---
a ,b,c,d = 1,2,3,4
xx = [3,6,8]
yy = [5,8,2]
zz = [8,2,8]
Speichern Sie diese Funktion, Array
# ---Sammeln Sie Variablen in Dataframe und speichern Sie CSV---
def getName(obj):
return [k for k, v in globals().items() if id(obj) == id(v)][0] #Geben Sie den Variablennamen mit str zurück
Rufen Sie mit dieser Funktion den Variablennamen als str ab Es ist fast ein Kopieren und Einfügen von diesem Artikel Hier klicken für Details
df = pd.DataFrame()
datas1 = [xx,yy,zz] #Fügen Sie unter Verwendung des Variablennamens als Header ein eindimensionales Array zu einem Datenrahmen zusammen
for data in datas1:
df = pd.concat([df, pd.DataFrame({getName(data):data})],axis=1) # {}Fügen Sie mit set einen Datenrahmen mit concat hinzu
Erstellen Sie einen DataFrame basierend auf {name: value}
und speichern Sie immer mehr mit concat in df
.
Durch Einfügen von Achse = 1 wird diese horizontal hinzugefügt
datas2 = [a,b,c,d]#Gruppieren Sie die Variablen unter Verwendung des Variablennamens als Header in einem Datenrahmen
for data in datas2:
df = pd.concat([df, pd.DataFrame({getName(data):[data]})],axis=1)# {}Fügen Sie mit set einen Datenrahmen mit concat hinzu
Mach das Gleiche wie zuvor Da der "Wert" von "{Name: Wert}" ein Array sein muss, ist der "Wert" "[Daten]".
df.to_csv('test.csv')
print(df)
del df
Speichern und anzeigen.
Da df
an verschiedenen Orten verwendet wird, werde ich es vorerst löschen.
In der folgenden Tabelle können Sie sehen, dass es ordnungsgemäß angezeigt und gespeichert wird.
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
Quellcode
import pandas as pd
# ---Definieren Sie Variablen zum Testen---
a ,b,c,d = 1,2,3,4
xx = [3,6,8]
yy = [5,8,2]
zz = [8,2,8]
# ---Sammeln Sie Variablen in Dataframe und speichern Sie CSV---
def getName(obj):
return [k for k, v in globals().items() if id(obj) == id(v)][0] #Geben Sie den Variablennamen mit str zurück
df = pd.DataFrame()
datas1 = [xx,yy,zz] #Fügen Sie unter Verwendung des Variablennamens als Header ein eindimensionales Array zu einem Datenrahmen zusammen
for data in datas1:
df = pd.concat([df, pd.DataFrame({getName(data):data})],axis=1) # {}Fügen Sie mit set einen Datenrahmen mit concat hinzu
datas2 = [a,b,c,d]#Gruppieren Sie die Variablen unter Verwendung des Variablennamens als Header in einem Datenrahmen
for data in datas2:
df = pd.concat([df, pd.DataFrame({getName(data):[data]})],axis=1)# {}Fügen Sie mit set einen Datenrahmen mit concat hinzu
df.to_csv('test.csv')
print(df)
del df
Schreiben Sie direkt an csv
# ---Definieren Sie Variablen zum Testen---
a ,b,c,d = 1,2,3,4
xx = [3,6,8]
yy = [5,8,2]
zz = [8,2,8]
import csv
# ---Wählen Sie eine Variable aus und speichern Sie csv---
def getName(obj):
return [k for k, v in globals().items() if id(obj) == id(v)][0] #Geben Sie den Variablennamen mit str zurück
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])
Bei der Fallklassifizierung wird eine einzelne Variable in einen Listentyp konvertiert
Ausgabe test2.csv
xx,3,6,8
yy,5,8,2
zz,8,2,8
a,1
b,2
c,3
d,4
sparen
import dill
dill.dump_session('session.pkl')
Lesen
import dill
dill.load_session('session.pkl')
Alle Variablen können unverändert verwendet werden.
Recommended Posts