将值的累计和获取到Pandas中

7lrncoxx  于 2023-05-12  发布在  其他
关注(0)|答案(1)|浏览(84)

我正在尝试将值的累积和输入pandas。
我的df看起来像这样。

Start Date
0
NA
NA
0
NA
NA
0
NA
0
NA
0
NA
NA

...


df['Start Date'].value_counts(dropna=False)

NaN     2145
0.0      130
Name: Start Date, dtype: int64

当前场景:

df['Month'] = df['Start Date'].where(df['Start Date'] == 0, df['Start Date'].shift() + 1)

但是,它不起作用。我的结果与我正在寻找的输出不匹配。
预期输出:

Month
0
1
2
0
1
2
0
1
0
1
0
1
2
...

有人能帮我完成这个任务吗?

ssgvzors

ssgvzors1#

我不知道我是否正确地理解了你的问题,但也许以下方法可以奏效:

df['Month'] = df.groupby(df['Start Date'].eq('0').cumsum()).cumcount()
print(df)

# Output
   Start Date  Month
0           0      0
1          NA      1
2          NA      2
3           0      0
4          NA      1
5          NA      2
6           0      0
7          NA      1
8           0      0
9          NA      1
10          0      0
11         NA      1
12         NA      2

相关问题