Skip to content

Instantly share code, notes, and snippets.

@do-me
Created November 8, 2023 10:32
Show Gist options
  • Select an option

  • Save do-me/1f26a0fee13c44744ff91f7d3ebec093 to your computer and use it in GitHub Desktop.

Select an option

Save do-me/1f26a0fee13c44744ff91f7d3ebec093 to your computer and use it in GitHub Desktop.
Pandas groupby with sum and original min index number
import pandas as pd
df = pd.read_excel("adressen.xlsx")
grouped = df.groupby(["Straße", "Hausnummer", "PLZ", "Ort"]).agg({'Servicezeit in Sekunden': 'sum'}).reset_index()
### originale Reihenfolge ableiten
grouped['Reihenfolge'] = df.groupby(["Straße", "Hausnummer", "PLZ", "Ort"]).apply(lambda x: list(x.index)).reset_index(drop=True)
grouped['Reihenfolge'] = grouped['Reihenfolge'] .apply(lambda x: min([int(i) for i in x]))
grouped = grouped.sort_values("Reihenfolge").reset_index(drop=True)
grouped["Tag"] = grouped.index
### hhmmd aufbereiten
grouped["Zeitfenster_HHMMD"] = grouped.Tag.apply(lambda x: f"[08:00(+{x}),12:00(+{x})]")
del grouped["Reihenfolge"]
grouped.to_excel("grouped.xlsx", index=False)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment