ich bräuchte einen ordentlichen Schubs bei einem Pandas-Problem. Da scheint sich das Verhalten über die Versionen verändert zu haben, deshalb ist es nicht ganz einfach das herauszulesen.
Der folgende Code funktioniert mit alten Versipnen von Pandas (0.4x), nicht jedoch mit einer aktuellen Version.
Es scheint damit zu tun zu haben, dass eine eigene Funktion beim Aggregieren verwendet wird. Ohne die funktioniert alles problemlos:
Code: Alles auswählen
import pandas as pd
DATA = {
"id": [1, 1, 2, 2],
"ham": [1, 2, 3, 4],
"spam": [5, 6, 7, 8]
}
def aggregate_series(series):
return series
def main():
df = pd.DataFrame(data=DATA)
df = (df
.groupby([id,])
.agg({"ham": "sum", "spam": "sum"})
.assign(eggs=lambda x: x["spam"])
.agg({"ham": "sum", "spam": "sum", "eggs": aggregate_series})
)
print(df)
if __name__ == "__main__":
main()
ValueError: cannot perform both aggregation and transformation operations simultaneously