Ein solcher mehrspaltiger Datenrahmen
In einen einzelnen Spaltendatenrahmen konvertieren.
--Wählen Sie eine Zeile / Spalte aus pandas MultiIndex aus und extrahieren Sie sie: https://note.nkmk.me/python-pandas-multiindex-indexing/
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.
Number_df nach der Aggregation. Die Anzahl der Personen sowie Summe und Mittelwert sind mehrere Spalten.
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.
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