pandas:如何使用pd.cut类别变量对groupby结果进行排序

2024-04-26 10:48:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,它是groupby使用pd.切割. 在

import pandas as pd
import numpy as np

di = pd.DataFrame({'earnings':pd.np.random.choice(10000, 10000), 'counts':[1] * 10000})
brackets=append(np.arange(0,5001,500),100000000)
di['earncat']=pd.cut(di['earnings'], brackets,right=False,retbins=True)[0]

di_everyone=di.groupby('earncat').sum()[['counts']]
di_everyone.sort_index(inplace=True)
di_everyone.to_string

这是输出

^{pr2}$

我不知道为什么[5001000]出现在倒数第二行。我决定不贴上earncat的标签,因为我想看到它的崩溃。我怎样才能在恩卡特分类?在

提前谢谢


Tags: 数据importnumpytruepandasasnppd
1条回答
网友
1楼 · 发布于 2024-04-26 10:48:01

您可能正在使用pandas 0.15.x,它不支持对分类数据类型的这种操作(它pd.切割函数产生)

同时,您可以解决以下问题:

di['earnlower'] = di['earncat'].apply(lambda x: int(x[1:].split(',')[0]))
di['earnhigher'] = di['earncat'].apply(lambda x: int(x[:-2].split(',')[1]))

di_everyone=di.groupby(['earnlower', 'earnhigher']).sum()[['counts']]

相关问题 更多 >