我有一个数据框,里面有['name', 'sex', 'births', 'year']列。然后我根据名字对数据框进行分组,创建了2个新的列 "max "和 "total"。
trendy_names['max'] = trendy_names.groupby(['name'], as_index = False)['births'].transform('max')
trendy_names['total'] = trendy_names.groupby(['name'], as_index = False)['births'].transform('sum')
使用这2列,我创建了一个计算列 "趋势性"。
trendy_names['trendiness'] = trendy_names['max']/trendy_names['total']
然后,我隔离那些总出生数大于1000的数据。
trendy_names = trendy_names[trendy_names.total >= 1000]
现在,我想根据 "趋势性 "列对数据框进行排序。有什么想法吗?
根据类型 "trendiness "对数据框进行排序。DataFrameGroupBy
1. trendy_names.reset_index()
reset_index()
- 转换回常规索引,即把pandas.core.groupby.DataFrameGroupBy转换为pandas.core.frame.DataFrame。
2. trendy_names.sort_values(by = 'trendiness')