全部
我有一个数据框如下
df = pd.DataFrame.from_dict({'A':[1,1,2], 'B':[10,20,14], "C":[30,40,20]})
如何创建新列,例如
newCol
,这取决于列A
。如果 A
处的值保持不变,则 newCol
将以递增的整数填充。如果 A
中有 diff 值,这里是 2
,那么 newCol
的值将重置并再次开始增加。
谢谢你。
代码
grp = df['A'].ne(df['A'].shift()).cumsum()
df['newCol'] = df['A'].groupby(grp).cumcount().add(1)
df:
A B C newCol
0 1 10 30 1
1 1 20 40 2
2 2 14 20 1