79621969

Date: 2025-05-14 17:14:16
Score: 1
Natty:
Report link

Use groupby.transform ?

This does the job. This works on large datasets.

import pandas as pd

df = pd.DataFrame({
    "group": ["A", "A", "B", "B", "B", "C"],
    "value": [10, 14, 3, 4, 9, 20],
})
df["value_centered"] = df["value"] - df.groupby("group")["value"].transform("mean")

print(df)
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (0.5):
Posted by: Omprakash S