【问题标题】:splitting/grouping pandas dataframe column拆分/分组熊猫数据框列
【发布时间】:2019-01-30 13:39:24
【问题描述】:

我有一个数据框,其中有一列填充了 1 和 0 组。如何为每个组分配一个从 1 开始的连续数字?

我尝试了跨行的 for 循环,但我需要列操作以提高性能。

d = {'col1': [1,1,1,0,0,1,1,0,0,0,1,1]}
df1 = pd.DataFrame(data=d)
df1

col1 0 1 1 1 2 1 3 0 4 0 5 1 6 1 7 0 8 0 9 0 10 1 11 1

我需要以下输出:

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

【问题讨论】:

    标签: python pandas numpy split grouping


    【解决方案1】:

    您可以比较不相等的移位值并添加Series.cumsum的累积总和:

    df1['col2'] = df1['col1'].ne(df1['col1'].shift()).cumsum()
    print (df1)
        col1  col2
    0      1     1
    1      1     1
    2      1     1
    3      0     2
    4      0     2
    5      1     3
    6      1     3
    7      0     4
    8      0     4
    9      0     4
    10     1     5
    11     1     5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-12
      • 2013-06-23
      • 2019-10-26
      • 2016-11-16
      • 2016-09-16
      • 2018-12-04
      • 1970-01-01
      • 2019-05-29
      相关资源
      最近更新 更多