Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- df = pd.DataFrame({
- 'Branch' : ['A', 'A', 'A', 'B', 'B', 'B'],
- 'M1': [1,3,5,8,9,3],
- 'M2': [2,4,5,9,2,1],
- 'Output': [1,5,5,8,1,3]
- })
- def group_center (df):
- df['M1'] = df['M1'] - df['M1'].mean()
- df['M2'] = df['M2'] - df['M2'].mean()
- return df
- centered = df.groupby('Branch').apply(group_center)
- In [53]:
- cols = ['M1','M2']
- df[cols] = df.groupby('Branch')[cols].apply(lambda x: x - x.mean())
- df
- Out[53]:
- Branch M1 M2 Output
- 0 A -2.000000 -1.666667 1
- 1 A 0.000000 0.333333 5
- 2 A 2.000000 1.333333 5
- 3 B 1.333333 5.000000 8
- 4 B 2.333333 -2.000000 1
- 5 B -3.666667 -3.000000 3
- means = df.groupby('Branch').apply(mean)
- df.set_index("Branch", inplace=True)
- output = df['Output']
- df = df - means
- df['Output'] = output
- M1 M2 Output
- Branch
- A -2.000000 -1.666667 1
- A 0.000000 0.333333 5
- A 2.000000 1.333333 5
- B 1.333333 5.000000 8
- B 2.333333 -2.000000 1
- B -3.666667 -3.000000 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement