優先選擇
你想用groupby
與transform
和max
df.groupby('ID').NumChil.transform('max')
0 3
1 3
2 1
3 1
Name: NumChil, dtype: int64
你Ç一個與
df['NumChil'] = df.groupby('ID').NumChil.transform('max')
df
Index ID NumChil
0 0 2011000070 3
1 1 2011000070 3
2 2 2011000074 1
3 3 2011000074 1
分配回就地或用
df.assign(NumChil=df.groupby('ID').NumChil.transform('max'))
Index ID NumChil
0 0 2011000070 3
1 1 2011000070 3
2 2 2011000074 1
3 3 2011000074 1
替代生產途徑複製
groupby
與max
和map
df.ID.map(df.groupby('ID').NumChil.max())
0 3
1 3
2 1
3 1
Name: ID, dtype: int64
df.assign(NumChil=df.ID.map(df.groupby('ID').NumChil.max()))
Index ID NumChil
0 0 2011000070 3
1 1 2011000070 3
2 2 2011000074 1
3 3 2011000074 1
groupby
與max
和join
df.drop('NumChil', 1).join(df.groupby('ID').NumChil.max(), on='ID')
Index ID NumChil
0 0 2011000070 3
1 1 2011000070 3
2 2 2011000074 1
3 3 2011000074 1