python有序类型有哪些_python – 在有序分类列上使用groupby的奇怪...

MCVE

df = pd.DataFrame({

'Cat': ['SF', 'W', 'F', 'R64', 'SF', 'F'],

'ID': [1, 1, 1, 2, 2, 2]

})

df.Cat = pd.Categorical(

df.Cat, categories=['R64', 'SF', 'F', 'W'], ordered=True)

如您所见,我在Cat上定义了一个有序的分类列.验证,检查;

0 SF

1 W

2 F

3 R64

4 SF

5 F

Name: Cat, dtype: category

Categories (4, object): [R64 < SF < F < W]

我想找到最大的PER ID类别.做groupby max工作.

df.groupby('ID').Cat.max()

ID

1 W

2 F

Name: Cat, dtype: object

但我不希望ID成为索引,所以我指定as_index = False.

df.groupby('ID', as_index=False).Cat.max()

ID Cat

0 1 W

1 2 SF

哎呀!现在,最大值按字典顺??序排列.任何人都可以解释这是否是预期的行为?或者这是一个错误?

请注意,对于此问题,解决方法是df.groupby(‘ID’).Cat.max().reset_index().

注意,

>>> pd.__version__

'0.22.0'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值