[英]splitting/grouping pandas dataframe column
我有一個數據框,其中一列填充了 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
您可以比較不相等的移位值並通過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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.