gpt4 book ai didi

python - Pandas 按行号分组产生意外输出

转载 作者:行者123 更新时间:2023-12-04 01:08:34 24 4
gpt4 key购买 nike

我有一个如下所示的数据框

import pandas as pd
import numpy as np
df=pd.DataFrame({'Adm DateTime':['02/25/2012','03/05/1996','11/12/2010','31/05/2012','21/07/2019','31/10/2020'],
's_id':[1,1,1,1,2,2],
't_id':['t1','t2','t3','t3','t4','t5']})

请注意,我想使用 group by 方法来实现这一点。虽然我已经提到了这个 post ,我不能将此解决方案用于我的数据(因为需要使用分组依据)

我想根据每个主题为每一行生成一个行号。虽然我能够使用下面的代码成功地做到这一点,但输出存在一个小问题

df['op'] = df.sort_values(['Adm DateTime'], ascending=True).groupby(['s_id']).cumcount() + 1

但是下面的代码产生如下所示的输出(有点不正确)

enter image description here

但是,我希望我的输出如下所示

enter image description here

最佳答案

您可以使用 factorizes_id分组转换 t_id 列|将 t_id 中的值编码为识别不同值的分类变量:

df['op'] = df.groupby('s_id')['t_id'].transform(lambda s: s.factorize()[0] + 1)

  Adm DateTime  s_id t_id  op
0 02/25/2012 1 t1 1
1 03/05/1996 1 t2 2
2 11/12/2010 1 t3 3
3 31/05/2012 1 t3 3
4 21/07/2019 2 t4 1
5 31/10/2020 2 t5 2

关于python - Pandas 按行号分组产生意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65550815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com