python - 根据另一列中的值创建重复的递增序列

标签 python pandas

我在 pandas df 中有 col1。我想做 col2:

col1    col2
1       1
1       2
1       3
1       4
2       2
2       3
2       4
3       3
3       4
4       4

换句话说,对于 col1 中的每个不同值,我希望 col2 增加以 col1 中的值开头的整数,并加一,直到没有更多行为止。

数据的结构使得 max(col1) = 2450:

  • 当 col1 = 1 时,有 2450 行
  • 当 col1 = 2 时,有 2449 行
  • 当 col1 = 2450 时,有 1 行

最佳答案

你可以GroupBy col1 列,取 cumcount组和 add col1:

df['col2'] = df.groupby('col1').cumcount().add(df.col1)

输出

    col1  col2
0     1     1
1     1     2
2     1     3
3     1     4
4     2     2
5     2     3
6     2     4
7     3     3
8     3     4
9     4     4

关于python - 根据另一列中的值创建重复的递增序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55302640/

相关文章:

python - 功能问题,数字问题,单词正常工作

python - 将数据插入两列 csv

python - 导入 jwt 导入错误 : No module named jwt

python - Pandas asfreq 每周频率

python - 如何将数据从 QTableWidget 检索到 Dataframe?

python - 用字典删除重复行

python - 如何分配和管理优先级机制

python - 散点图上的 Bokeh 图回归线

python - 在 Tensorflow 中打印所有 dtype=float32 的值(权重)

python - 如何填写条件