[Python] Verwenden Sie DataFrame, um beliebige Variablen und Arrays zusammen zu kennzeichnen und in csv [pandas] Re-UP zu speichern

Ich wollte alle Variablen einfach zusammen speichern, also habe ich ein solches Programm erstellt. Es kann durch Anwenden eines zweidimensionalen Arrays gespeichert werden.

[Python] Verwenden Sie DataFrame, um beliebige Variablen und Arrays zusammen zu kennzeichnen und in csv [pandas] zu speichern Wenn Sie es in das Programm in der Produktion anstelle des Testprogramms integrieren Es gab einen Fehler, dass alle Namen als "Daten" gespeichert wurden, daher werde ich eine Problemumgehung schreiben. Die Ursache ist unbekannt, aber die detaillierten Symptome sind in [hier] zusammengefasst (# Fehlerinhaltsanalyse).

Über Weil die Daten im for-Teil auf "für Daten in Daten:" gesetzt wurden Es scheint, dass alle Namen als "Daten" gespeichert wurden. Sie können es also in Form von "datas [i]" angeben. Es ist ein Rätsel, warum dies mit Testcode und nicht in der Produktion möglich ist. Weil es in einer Funktion ist? ??

Es ist keine große Umschreibung, also lasse ich einfach den 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()

datas = [xx,yy,zz] #Fügen Sie unter Verwendung des Variablennamens als Header ein eindimensionales Array zu einem Datenrahmen zusammen
for i in range(len(datas)):
    df = pd.concat([df, pd.DataFrame({getName(datas[i]):datas[i]})],axis=1) # {}Fügen Sie mit set einen Datenrahmen mit concat hinzu

datas = [a,b,c,d]#Gruppieren Sie die Variablen in einem Datenrahmen, während Sie den Variablennamen als Header verwenden
for i in range(len(datas)):
    df =  pd.concat([df, pd.DataFrame({getName(datas[i]):[datas[i]]})],axis=1)# {}Fügen Sie mit set einen Datenrahmen mit concat hinzu
df.to_csv('test.csv')
print(df)
del df

output

   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

Inhaltsanalyse von Fehlern

Nachdem Sie das ursprüngliche Programm gedreht, den Variablennamen geändert und dann erneut gedreht haben, ist der obige Fehler aus irgendeinem Grund aufgetreten.

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 in einem Datenrahmen, während Sie den Variablennamen als Header verwenden
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

output

   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

Auf diese Weise gelingt es zum ersten Mal Wenn Sie den Variablennamen erneut ändern und in diesen Zustand versetzen

import pandas as pd

# ---Definieren Sie Variablen zum Testen---
a ,b,c,d = 1,2,3,4
xxx= [3,6,8] ###Ändere das
yyy= [5,8,2] ###Ändere das
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()
###Hier ändern
datas1 = [xxx,yyy,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 in einem Datenrahmen, während Sie den Variablennamen als Header verwenden
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

output

   data  data  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

Der Name wird Daten wie diese sein

Recommended Posts

[Python] Verwenden Sie DataFrame, um beliebige Variablen und Arrays zusammen zu kennzeichnen und in csv [pandas] Re-UP zu speichern
[Python] Verwenden Sie DataFrame, um beliebige Variablen und Arrays zusammen zu kennzeichnen und in csv [pandas] zu speichern.
Verwendung ist und == in Python
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen
Ich habe versucht zusammenzufassen, wie man Pandas von Python benutzt
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
Kombinieren Sie Listen zu einem DataFrame mit Pandas
Zeigen Sie Zahlen und Zeichen an, die Variablen im Python-Druck zugewiesen sind
Sammeln Sie Tweets mit tweepy in Python und speichern Sie sie in MongoDB
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
Verarbeitung zur Verwendung von notMNIST-Daten in Python (und versucht, sie zu klassifizieren)
[Python] So fügen Sie einer Tabelle Zeilen und Spalten hinzu (pandas DataFrame)
Verwendung von Funktionen in separaten Dateien Perl-Version und Python-Version
Verwendung von Umgebungsvariablen für Serverless Framework und Python und Verwaltung von Phasen
[Python] Wenn Sie alle Variablen in einer anderen Datei verwenden möchten
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Ich war süchtig nach falschen Klassenvariablen und Instanzvariablen in Python
[Python] Verwendung der Pandas-Serie
Verwendung von SQLite in Python
[Einführung in Python] Verwenden wir Pandas
Wie man MySQL mit Python benutzt
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
[Einführung in Python] Verwenden wir Pandas
[Einführung in Python] Verwenden wir Pandas
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
Datenanalyse: Einfache Anwendung deskriptiver Statistiken und Schätzungsstatistiken auf CSV-Daten in Python
Stellen Sie von Python aus eine Verbindung zu postgreSQL her und verwenden Sie gespeicherte Prozeduren in einer Schleife.
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
[Python] Was ist Pandas Series und DataFrame?
[Python] Zusammenfassung der Verwendung von Pandas
[Einführung in Python] Wie verwende ich eine Klasse in Python?
So teilen und speichern Sie einen DataFrame
[Python] Extrahiere △△ mit maximalem ○○ mit Pandas
[Python] Verwenden Sie und und oder beim Erstellen von Variablen
Dynamisches Definieren von Variablen in Python
So installieren und verwenden Sie pandas_datareader [Python]
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
So weisen Sie den Index im Pandas-Datenrahmen neu zu
[Python] Pandas in 10 Minuten vollständig zu verstehen
Verweisen auf Umgebungsvariablen in Python in Blender
Lesen Sie Python csv und exportieren Sie es nach txt
Python: Verwendung von Einheimischen () und Globalen ()
Verwendung von __slots__ in der Python-Klasse
[Python] Fügen Sie Pandas DataFrame insgesamt Zeilen hinzu
Verwendung von Python zip und Aufzählung
Verwendung regulärer Ausdrücke in Python
Lesen von CSV-Dateien mit Pandas
Hinzufügen von Serien zur Spalte in Python-Pandas
Verwendung von pandas Timestamp und date_range
Tipps für diejenigen, die verwirrt sind, wie man is und == in Python verwendet
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Verwenden Sie libsixel, um Sixel in Python auszugeben und das Matplotlib-Diagramm an das Terminal auszugeben.
[Python-Lernteil 3] Konvertieren Sie Pandas DataFrame, Series und Standard List ineinander
Speichern Sie den Tweet von Twitter mit Geo als CSV und zeichnen Sie ihn auf Google Map.