[PYTHON] So beheben Sie mehrere Spalten, die von der Pandas-Gruppe generiert wurden, indem Sie sie zu einer einzelnen verarbeiten

Überblick

Bei der Pandas-Groupby-Verarbeitung unter Verwendung von ".agg ()" zur Berechnung mehrerer Statistiken wie "[max, min]" ist der zurückgegebene Datenrahmen mehrspaltig. Ich werde vorstellen, wie Sie diese Mehrspalte einfach in eine einzelne Spalte konvertieren können.

Vorbereitung

Erstellen Sie einen 5-mal-2-Datenrahmen, der nur aus 0 und 1 als Beispiel besteht.

input}


import numpy as np
import pandas as pd

mat = np.random.rand(5, 2)
mat[mat > 0.5] = 1
mat[mat <= 0.5] = 0
df = pd.DataFrame(mat, columns=['A', 'B'])

output}


     A    B
0  0.0  1.0
1  1.0  0.0
2  0.0  1.0
3  0.0  1.0
4  0.0  0.0

Status

Wenn Sie "[min, max]" mit ".agg ()" angeben, ist dies mehrspaltig.

input}


df.groupby('A').agg({'B': [min, max]}).columns

output}


MultiIndex([('B', 'min'),
            ('B', 'max')],
           )

Lösung

Bereiten Sie Variablen (level1, level2 im folgenden Beispiel) wie bei der Behandlung von zip in der for-Anweisung vor und kombinieren Sie sie mit fstring als Zeichenfolge.

input}


[f'{level1}__{level2}' for level1, level2 in df.groupby('A').agg({'B': [min, max]}).columns]

output}


['B__min', 'B__max']

Recommended Posts

So beheben Sie mehrere Spalten, die von der Pandas-Gruppe generiert wurden, indem Sie sie zu einer einzelnen verarbeiten
Pandas: groupby (), um den Wert nach Gruppe zu vervollständigen
Zeichnen Sie ein Diagramm, indem Sie es mit Pandas groupby verarbeiten
Verwendung von Pandas 2
Vergleichen Sie, wie die Verarbeitung für Listen nach Sprache geschrieben wird
Wie man Pandas Rolling benutzt
So überschreiben Sie eine benutzerdefinierte Typmethode, die von Python Swig generiert wird
Wie man nüchtern mit Pandas schreibt
[Python] Verwendung der Pandas-Serie
So trennen Sie den Pipeline-Verarbeitungscode mit Scrapy nach Spider
[Python] Zusammenfassung der Verwendung von Pandas
[Pandas] Was ist set_option?
So weisen Sie den Index im Pandas-Datenrahmen neu zu
Lesen von CSV-Dateien mit Pandas
Verwendung von pandas Timestamp und date_range