python - 当另一列值更改时创建带有行号的列python

标签 python pandas dataframe

我有一个像这样的数据框

package_num   delivery_date
122           12/21
122           12/21
134           12/30
156           12/30
156           12/30

我希望能够在 python 上使用类似 MySQL row_number() 的东西。我想要一列行号从 1 开始并以 1 为增量递增,直到包号发生变化。所以我想要的结果是:

package_num   delivery_date    row_number
122           12/21            1
122           12/21            2
134           12/30            1
156           12/30            1
156           12/30            2

最佳答案

使用列表理解的一点扩展版本:

val = df.groupby('package_num').count().values.ravel()
df['row_numer'] = [j  for i in val for j in range(1, i+1)]

关于python - 当另一列值更改时创建带有行号的列python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54016829/

相关文章:

python - 启动交互式 shell 时导入

python - 如何将 Pandas 系列或索引转换为 NumPy 数组?

python - 使用 pandas 将多列缩减为一列

python - 来自 Pandas 数据框的多组重复记录

python - 以 python sorted() 函数方式对 pandas.DataFrame 进行排序

python - python 中与变量限制积分

python - Spark DataFrame 运算符(唯一、乘法)

python - 为什么通过 for 循环第一次返回正确的计数值?

python - 自动为每个文件夹创建数据框

python - 滚动百分位数 - Pandas