Pandas-Daten mit Melt umgestalten

Pandas ist eine Python-Datenanalysebibliothek und in diesem Beitrag werden wir an einem Beispiel für die Umformung arbeiten pandas Daten mit melt

import pandas as pd
data = {
    "location":['CityA', 'CityB'],
    "Temperature" : ["Predict", "Actual"],
    "Jan-2010":[30, 32],
    "Feb-2010":[45, 43],
    "Mar-2010":[24, 22]
}
print(data)
{'Feb-2010': [45, 43], 'Jan-2010': [30, 32], 'Mar-2010': [24, 22], 'location': ['CityA', 'CityB'], 'Temperature': ['Predict', 'Actual']}

Obige Daten sind eine Sammlung von Durchschnittstemperaturen von 2 Städten StadtA und StadtB in Monaten von Jan, Feb & Beschädigen.

Erstellen Sie einen Panda Datenrahmen

Lassen Sie uns ein pandas DataFrame-Objekt erstellen, damit wir unsere Operationen mit den Daten ausführen können.

df = pd.DataFrame(data, columns=['location', 'Temperature','Jan-2010', 'Feb-2010', 'Mar-2010'])
print(df)
  location Temperature  Jan-2010  Feb-2010  Mar-2010
0    CityA     Predict        30        45        24
1    CityB      Actual        32        43        22

DataFrame für eine bessere Analyse umgestalten.

Diese Daten liegen derzeit in einer für Menschen lesbaren Form vor, da es eine Zeile für jeden Standort und eine separate Spalte für Temparture in bestimmten Monaten gibt; aber ist nicht gut für die Analyse als; Wenn wir ‘groupby’-Operationen erstellen oder mit der Normalisierung dieses Datenrahmens beginnen wollten, müssten wir einige Umformungen vornehmen.

Lassen Sie uns den Datenrahmen so umgestalten, dass er eine Spalte enthält, die den Standort enthält, und eine weitere Spalte, die Temperaturinformationen enthält.

df2 = pd.melt(df, id_vars=["location", "Temperature"], var_name="Date", value_name="Value")
print(df2)
  location Temperature      Date  Value
0    CityA     Predict  Jan-2010     30
1    CityB      Actual  Jan-2010     32
2    CityA     Predict  Feb-2010     45
3    CityB      Actual  Feb-2010     43
4    CityA     Predict  Mar-2010     24
5    CityB      Actual  Mar-2010     22

Sortieren Sie die Daten

Um die Daten zu sortieren, die wir verwenden können pandas.DataFrame.sort_values(column_list) & übergeben Sie ihm die Liste der Spalten.

df_sorted = df2.sort_values(["location", "Temperature"])
print(df_sorted)
  location Temperature      Date  Value
0    CityA     Predict  Jan-2010     30
2    CityA     Predict  Feb-2010     45
4    CityA     Predict  Mar-2010     24
1    CityB      Actual  Jan-2010     32
3    CityB      Actual  Feb-2010     43
5    CityB      Actual  Mar-2010     22

Verweise:

Similar Posts

Leave a Reply

Your email address will not be published.