Error When Calling A Groupby Object Inside A Pandas DataFrame
I've got this dataframe: person_code #CNAE growth size 0 231 32 0.54 32 1 233 43 0.12 333 2 432 32 0.44 2
Solution 1:
There is one way, convert a to dict , then map it back
#a=df.groupby('#CNAE',group_keys=False).apply(pd.DataFrame.nlargest,n=3,columns='growth')
df['top3growth']=df['#CNAE'].map(a.groupby('#CNAE').apply(lambda x : x.to_dict()))
df
Out[195]:
person_code #CNAE growth size \
0 231 32 0.54 32
1 233 43 0.12 333
2 432 32 0.44 21
3 431 56 0.32 23
4 654 89 0.12 89
5 764 32 0.20 211
6 434 32 0.82 90
top3growth
0 {'person_code': {0: 231, 2: 432, 6: 434}, 'gro...
1 {'person_code': {1: 233}, 'growth': {1: 0.12},...
2 {'person_code': {0: 231, 2: 432, 6: 434}, 'gro...
3 {'person_code': {3: 431}, 'growth': {3: 0.32},...
4 {'person_code': {4: 654}, 'growth': {4: 0.12},...
5 {'person_code': {0: 231, 2: 432, 6: 434}, 'gro...
6 {'person_code': {0: 231, 2: 432, 6: 434}, 'gro...
After create your new column , if you want to convert the single cell back to dataframe
pd.DataFrame(df.top3growth[0])
Out[197]:
#CNAE growth person_code size
0 32 0.54 231 32
2 32 0.44 432 21
6 32 0.82 434 90
Post a Comment for "Error When Calling A Groupby Object Inside A Pandas DataFrame"