This is my code:
all_data = pd.merge(all_data, meanData, suffixes=["", "_mean"], how='left', on=['id', 'id2'])
Now, I want to merge all_data
and meanData
, but I want the columns of meanData to appear first.
Like this:
a_mean,b_mean,c_mean,a,b,c
Not like this
a,b,c,a_mean,b_mean,c_mean
Note: I have a lot of columns, So i do not want to manually write code to change index.
Sample Code (you can reproduce):
import pandas
df = pd.DataFrame([[0,1, 2], [0,1, 3], [0,4, 6],[1,3,4],[1,4,2]], columns=['id','A', 'B'])
features = ['A','B']
meanData = df.groupby(['id'])[features].agg('mean')
df = pd.merge(df, meanData, suffixes=["", "_mean"], how='left', on=['id'])
print(df.columns)
Output
Index(['id', 'A', 'B', 'A_mean', 'B_mean'], dtype='object')
Expected output:
Index(['A_mean', 'B_mean','id', 'A', 'B'], dtype='object')