[PYTHON] So geben Sie die CSV eines mehrzeiligen Headers mit Pandas aus

Was du machen willst

Ich möchte eine Tabelle mit mehreren Kopfzeilenzeilen wie der folgenden im CSV-Format ausgeben.

image.png

Ich werde den Artikel als Memorandum veröffentlichen.

Umgebung

Realisierungsmethode

  1. Erstellen Sie einen DataFrame mit den Spalten "MultiIndex"
  2. Ausgabe mit der Methode to_csv von DataFrame

So erstellen Sie einen DataFrame

Übergeben Sie dict an das Argument data des Konstruktors DataFrame.

df = pandas.DataFrame({
    ("Alice","Math"): [80,81],
    ("Alice","English"): [90,91],
    ("Bob","Math"): [70,71]
})

print(df)
#   Alice          Bob
#    Math English Math
# 0    80      90   70
# 1    81      91   71

print(df.columns)
# MultiIndex([('Alice',    'Math'),
#             ('Alice', 'English'),
#             (  'Bob',    'Math')],
#            )

Übergeben Sie "MultiIndex" an das Argument "Spalten" des Konstruktors "DataFrame"

index = pandas.MultiIndex.from_tuples([
    ("Alice","Math"),
    ("Alice","English"),
    ("Bob","Math")
])

df2 = pandas.DataFrame([[80,90,70],[81,91,71]], columns=index)

print(df2)
#   Alice          Bob
#    Math English Math
# 0    80      90   70
# 1    81      91   71

print(df2.columns)
# MultiIndex([('Alice',    'Math'),
#             ('Alice', 'English'),
#             (  'Bob',    'Math')],
#            )

Übergeben Sie eine Liste von Dikten im Argument "data" des Konstruktors "DataFrame"

Wenn das Konstruktorargument Spalten Keine ist, lautet der Typ der Eigenschaft Spalten`` Index und es ist nicht möglich, mit einem mehrzeiligen Header auszugeben.

df3 = pandas.DataFrame(
    [
        {("Alice","Math"):80, ("Alice","English"):90,("Bob","Math"):70},
        {("Alice","Math"):81, ("Alice","English"):91,("Bob","Math"):71},
    ]
)

print(df3)
#    (Alice, Math)  (Alice, English)  (Bob, Math)
# 0             80                90           70
# 1             81                91           71

print(df3.columns)
# Index([('Alice', 'Math'), ('Alice', 'English'), ('Bob', 'Math')], dtype='object')

Sie können einen mehrzeiligen Header ausgeben, indem Sie "MultiIndex" im Argument "Spalten" übergeben.

index = pandas.MultiIndex.from_tuples([
    ("Alice","Math"),
    ("Alice","English"),
    ("Bob","Math")
])

df3 = pandas.DataFrame(
    [
        {("Alice","Math"):80, ("Alice","English"):90,("Bob","Math"):70},
        {("Alice","Math"):81, ("Alice","English"):91,("Bob","Math"):71},
    ]
    ,columns=index
)

print(df3)
#   Alice          Bob
#    Math English Math
# 0    80      90   70
# 1    81      91   71

Ausgabe mit der Methode "to_csv" von DataFrame

df.to_csv("foo.csv", index=False)

foo.csv


Alice,Alice,Bob
Math,English,Math
80,90,70
81,91,71

Recommended Posts

So geben Sie die CSV eines mehrzeiligen Headers mit Pandas aus
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
Ausgabe in eine CSV-Datei mit Python
[Python] Zusammenfassung der Verwendung von Pandas
Lesen von CSV-Dateien mit Pandas
So ändern Sie mehrere Spalten von csv in Pandas (Unixtime-> Japan Time)
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)
Erstellen von CSV-Beispieldaten mit Hypothese
Lesen einer CSV-Datei mit Python 2/3
[Python] Wie man Excel-Dateien mit Pandas liest
So legen Sie Attribute mit Mock of Python fest
So implementieren Sie "named_scope" von RubyOnRails mit Django
CSV-Ausgabe von Impulsdaten mit Raspberry Pi (CSV-Ausgabe)
Verwendung von Pandas 2
Konvertieren Sie 202003 bis 2020-03 mit Pandas
Zusammenfassung zum Lesen numerischer Daten mit Python [CSV, NetCDF, Fortran Binary]
So konvertieren Sie horizontal gehaltene Daten mit Pandas in vertikal gehaltene Daten
So extrahieren Sie Nullwerte und Nicht-Nullwerte mit Pandas
So extrahieren Sie mit Pandas Daten, denen der Wert nan nicht fehlt
[Python] Umgang mit Pandas read_html Lesefehler
[Python] Ein Memo zum vertikalen Schreiben von CSV mit Pandas
Ableiten der MAP-Schätzung von HMM mit PyStruct
[Python-pptx] Gibt PowerPoint-Schriftinformationen mit Python in CSV aus
Ableiten der MAP-Schätzung von HMM mit OpenGM
Wie man strukturiertes SVM von ChainCRF mit PyStruct lernt
So extrahieren Sie mit Pandas Daten, denen der Wert nan nicht fehlt
Zusammenfassung, wie der Status mit mehreren Funktionen geteilt wird
[Memo] Lade csv von s3 mit boto3 in Pandas
Lesen Sie CSV mit Python-Pandas
Wie aktualisiere ich mit SQLAlchemy?
Wie man Pandas Rolling benutzt
Wie man mit Theano besetzt
Wie mit SQLAlchemy ändern?
Schreiben Sie mit Python in csv
So trennen Sie Zeichenfolgen mit ','
Wie man RDP auf Fedora31 macht
Wie lösche ich mit SQLAlchemy?
So geben Sie ein Dokument im PDF-Format mit Sphinx aus
So aktivieren Sie das Lesen / Schreiben von net.Conn mit golang, um mit dem Kontext abzubrechen
So zeigen Sie eine Liste der mit pyenv installierbaren Versionen an
[Python] So geben Sie eine Pandas-Tabelle in eine Excel-Datei aus
So erhalten Sie einen Überblick über Ihre Daten in Pandas
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
So erstellen Sie einen Datenrahmen und spielen mit Elementen mit Pandas
So geben Sie zusätzliche Informationen aus, wenn Sie Protokolle mit dem Protokollierungsmodul von Python ausgeben
So geben Sie die Anzahl der ANSICHTEN, Likes und Bestände von Artikeln aus, die in Qiita an CSV gesendet wurden (erstellt mit "Python + Qiita API v2")
So brechen Sie RT mit tweepy ab
So fügen Sie eine CSV-Datei mit Pandas in eine Excel-Datei ein
So extrahieren Sie Funktionen von Zeitreihendaten mit PySpark Basics
Python: So verwenden Sie Async mit
[Hugo] Zusammenfassung zum Hinzufügen von Seiten zu der mit Learn erstellten Site
[Python] Mit Python in eine CSV-Datei schreiben
Zusammenfassung der Verwendung von pandas.DataFrame.loc
Wie man nüchtern mit Pandas schreibt
So erhalten Sie die ID von Type2Tag NXP NTAG213 mit nfcpy
So verwenden Sie virtualenv mit PowerShell
Etosetra im Zusammenhang mit Pandas read_csv
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus