根据条件从某个值增加数据框列
Increment dataframe column from a certain value based on condition
我有一个数据框,我想根据不同列的条件创建一个新列。创建以 2348 开头的新列“ans”,并基于列“ix”递增。在“ix”列中,如果值与下一个相同,则保持“ans”列相同,如果其增量不同,则为“ans”
感谢您的回答
index ix
1 pa
2 pa
3 pa
4 pe
5 fc
6 pb
7 pb
8 df
应该导致:-
index ix ans
1 pa 2348
2 pa 2348
3 pa 2348
4 pe 2349
5 fc 2350
6 pb 2351
7 pb 2351
8 df 2352
您可以使用 shift()
检查 ix 列与其前一行是否相等,并使用 cumsum()
:
df['ans'] = (
df['ix'].ne(df['ix'].shift(1))
).cumsum().add(2348) - 1
打印:
index ix ans
0 1 pa 2348
1 2 pa 2348
2 3 pa 2348
3 4 pe 2349
4 5 fc 2350
5 6 pb 2351
6 7 pb 2351
7 8 df 2352
我有一个数据框,我想根据不同列的条件创建一个新列。创建以 2348 开头的新列“ans”,并基于列“ix”递增。在“ix”列中,如果值与下一个相同,则保持“ans”列相同,如果其增量不同,则为“ans”
感谢您的回答
index ix
1 pa
2 pa
3 pa
4 pe
5 fc
6 pb
7 pb
8 df
应该导致:-
index ix ans
1 pa 2348
2 pa 2348
3 pa 2348
4 pe 2349
5 fc 2350
6 pb 2351
7 pb 2351
8 df 2352
您可以使用 shift()
检查 ix 列与其前一行是否相等,并使用 cumsum()
:
df['ans'] = (
df['ix'].ne(df['ix'].shift(1))
).cumsum().add(2348) - 1
打印:
index ix ans
0 1 pa 2348
1 2 pa 2348
2 3 pa 2348
3 4 pe 2349
4 5 fc 2350
5 6 pb 2351
6 7 pb 2351
7 8 df 2352