I have this simple dataframe df
:
df = pd.DataFrame({\'c\':[1,1,1,2,2,2,2],\'type\':[\'m\',\'n\',\'o\',\'m\',\'m\',\'n\',\'n\']})
Another solution with transform len
:
df['size'] = df.groupby('c')['type'].transform(len)
print df
c type size
0 1 m 3
1 1 n 3
2 1 o 3
3 2 m 4
4 2 m 4
5 2 n 4
6 2 n 4
Another solution with Series.map and Series.value_counts:
df['size'] = df['c'].map(df['c'].value_counts())
print (df)
c type size
0 1 m 3
1 1 n 3
2 1 o 3
3 2 m 4
4 2 m 4
5 2 n 4
6 2 n 4