gpt4 book ai didi

python - 保留在 python、pandas 中

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:26 25 4
gpt4 key购买 nike

我有一个数据集,其中有一个值为 0,1 的变量。

我需要按以下方式输出。

变量 - 0 1 1 1 0 1 1 1 0 1 1 0

标志 - 1 1 1 1 2 2 2 2 3 3 3 4

每次变量变为 0 时,flag 应该增加 1,并且它应该保持不变,直到遇到下一个 0。

我正在进行从 SAS 到 Python 的代码转换。这在 SAS 中很容易,但我发现在 Pandas 中很难。像SAS这样的 Pandas 有什么特定的保留功能吗?我在 Pandas 文档中没有看到任何保留功能。

提前致谢。

最佳答案

我认为您需要与 0cumsum 进行比较:

s = pd.Series([ 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0])
print (s)
0 0
1 1
2 1
3 1
4 0
5 1
6 1
7 1
8 0
9 1
10 1
11 0
dtype: int64

s1 = (s == 0).cumsum()
print (s1)
0 1
1 1
2 1
3 1
4 2
5 2
6 2
7 2
8 3
9 3
10 3
11 4
dtype: int32

df = pd.DataFrame({'Variable': [ 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0]})
df['Flag'] = (df.Variable == 0).cumsum()
print (df)
Variable Flag
0 0 1
1 1 1
2 1 1
3 1 1
4 0 2
5 1 2
6 1 2
7 1 2
8 0 3
9 1 3
10 1 3
11 0 4

关于python - 保留在 python、pandas 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41300492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com