gpt4 book ai didi

python - python中的数据框操作

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:03 24 4
gpt4 key购买 nike

我有下面给出的输入数据帧。对于 ID 的每个第一个唯一元素行,必须在输出数据帧 Zeros_For_UniqueID 列中将其写入零。然后,在唯一 ID 出现整数之前,应从 Count 变量中对连续的零进行计数,并且必须将其放入输出列 Zeros_For_UniqueID .

输入数据框:

ID  Count
1234 1
1234 2
1234 0
1234 0
1234 0
1234 1
1234 1
5678 1
5678 5
5678 4
5678 0
1111 0
1111 0
1111 1
1111 2
1111 0
1111 0
1111 2

输出数据框

ID  Count   Zeros_For_UniqueID
1234 1 0
1234 2 0
1234 0 0
1234 0 1
1234 0 2
1234 1 3
1234 1 0
5678 1 0
5678 5 0
5678 4 0
5678 0 0
1111 0 0
1111 0 1
1111 1 2
1111 2 0
1111 0 0
1111 0 1
1111 2 2

谁能帮我解决这个问题。我是 python 新手,正在尝试解决这个问题以供进一步研究。谢谢!

最佳答案

我不确定速度,但这将达到你所需要的,你需要groupby+cumsum+shift

df['New']=df.groupby('ID').\
apply(lambda x : x.groupby(x.Count.ne(0).cumsum().shift().fillna(False)).cumcount()).\
sort_index(level=1).values
df
Out[323]:
ID Count New
0 1234 1 0
1 1234 2 0
2 1234 0 0
3 1234 0 1
4 1234 0 2
5 1234 1 3
6 1234 1 0
7 5678 1 0
8 5678 5 0
9 5678 4 0
10 5678 0 0
11 1111 0 0
12 1111 0 1
13 1111 1 2
14 1111 2 0
15 1111 0 0
16 1111 0 1
17 1111 2 2

关于python - python中的数据框操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48574444/

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