python - pandas 分组依据和顺序

标签 python pandas

我有一个带有 category 的数据框专栏。

对于category内的每个类列,我想要一个从 1 到 n 的重复序列。例如,在下表中,对于 category 中的每个唯一值列(例如 abc 等),我想要一个来自 1 to 3 的重复序列在相应的sequence栏目

<表类=“s-表”> <标题> id 类别 序列 <正文> 1 a 1 2 a 2 3 a 3 4 a 1 5 a 2 6 a 3 7 b 1 8 b 2 9 b 3 10 b 1 11 b 2 12 b 3

我非常感谢任何建议

最佳答案

使用cumcount :

df['sequence'] = (df.groupby('category').cumcount() % 3) + 1
print(df)

输出

    id category  sequence
0    1        a         1
1    2        a         2
2    3        a         3
3    4        a         1
4    5        a         2
5    6        a         3
6    7        b         1
7    8        b         2
8    9        b         3
9   10        b         1
10  11        b         2
11  12        b         3

作为替代方案:

df['sequence'] = df.groupby('category').cumcount().mod(3).add(1)

关于python - pandas 分组依据和顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65588677/

相关文章:

python - 以可调比例拆分列表

python - 在python中的两个键上合并两个数据框

python - 使用 pandas 时 Discord.gateway 警告 "Shard ID None heartbeat blocked for more than 10 seconds."

python - 如何在多索引数据框中按第二级日期切片进行过滤

python - Pandas 版本之间的 MultiIndex/Reshaping 差异

python - 如何与后台 Python 实例通信?

python - 迁移后的 Django South 迁移从初始开始

python - 二次形式 numpy 数组乘法的最快方法是什么?

python - Matplotlib 散点图在指定颜色时给出 ValueError(msg.format(c.shape, x.size, y.size))

python-3.x - 有没有一种方法可以使用重新采样来矢量化添加缺失的月份?