[PYTHON] Funktion zum Zurückgeben mehrerer Spalten an einzelne Spalten in DataFrame

Funktionsfunktion

Ein solcher mehrspaltiger Datenrahmen WS000001.JPG

In einen einzelnen Spaltendatenrahmen konvertieren. WS000002.JPG

Nützliche Szene

Mehrspaltige Referenz

--Wählen Sie eine Zeile / Spalte aus pandas MultiIndex aus und extrahieren Sie sie: https://note.nkmk.me/python-pandas-multiindex-indexing/

Tatsächlicher Code

python


#Eine Funktion, die die Spaltennamen in der ersten und zweiten Zeile von df in verkettete Spaltennamen konvertiert
def rename_multicol(df):
    df_col=df.columns #Spaltennamen kopieren
    df = df.T.reset_index(drop=False).T #Spaltennamen einmal zurücksetzen
    for  i in range(df.shape[1]): #Neu definierter Spaltenname
        rename_col = {i:"".join(df_col[i])}
        df = df.rename(columns = rename_col)     
    df = df.drop(["level_0","level_1"],axis=0)
    return df

Hier ist ein Beispiel für die tatsächliche Verwendung dieser Funktion.

python


company_list =["A","B","C","D","E","F","G"]
pref_list = ["Tokio","Okinawa", "Tokio", "Kanagawa", "Kanagawa", "Tokio", "Okinawa"]
num_list = [10,3,6,4,5,7,2]

df = pd.DataFrame({"Name der Firma":company_list,
                   "Präfekturen":pref_list,
                   "Anzahl der Personen":num_list})

#Berechnen Sie die Gesamtzahl und die durchschnittliche Anzahl der Personen
number_df = df.groupby("Präfekturen",as_index=False).agg({"Anzahl der Personen":["sum","mean"]})

#In einzelne Spalte konvertieren
number_df_rename = rename_multicol(number_df)

Angenommen, Sie möchten die Gesamtzahl und den Durchschnitt der Anzahl der Personen für jede Präfektur von df aggregieren. 'df.groupby ("Präfektur", as_index = False) .agg ({"Anzahl der Personen": ["Summe", "Mittelwert"]})' wird zum gleichzeitigen Zählen verwendet. WS000000.JPG

Number_df nach der Aggregation. Die Anzahl der Personen sowie Summe und Mittelwert sind mehrere Spalten. WS000001.JPG

Number_df_rename wird mit der Funktion rename_multicol in einzelne Spalten konvertiert. Jetzt können Sie es mit einem anderen Datenrahmen mit dem Status als Schlüssel kombinieren. WS000002.JPG

Am Ende

Zunächst suchte ich nach "Mehrere Spalten abbrechen", ohne mehrere Spalten zu kennen ... Es ist praktisch, die Tabelle alleine zu sagen, aber es war schwierig, mit der Verknüpfung umzugehen.

Recommended Posts

Funktion zum Zurückgeben mehrerer Spalten an einzelne Spalten in DataFrame
Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame
So geben Sie char * in einer Rückruffunktion mit ctypes in Python zurück
Funktion zum Konvertieren von Excel-Spalten in Zahlen
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
So finden Sie eine Spalte eines bestimmten Typs (str, float usw.) aus einer Spalte in einem DataFrame
Verwendung berechneter Spalten in CASTable
So weisen Sie den Index im Pandas-Datenrahmen neu zu
Hinzufügen von Serien zur Spalte in Python-Pandas
Fügen Sie mit Pandas Summen zu Zeilen und Spalten hinzu
Wie man eine öffentliche Funktion in Pytest verspottet