计算python列中最新的相同值
我有这样的数据:计算python列中最新的相同值,python,pandas,Python,Pandas,我有这样的数据: id a b c d 1 y y z z 2 y z y y 3 y y y y id count_y 1 2 2 1 3 4 我想从上一次更改的列a b c d中计算值“y”,如下所示: id a b c d 1 y y z z 2 y z y y 3 y y
id a b c d
1 y y z z
2 y z y y
3 y y y y
id count_y
1 2
2 1
3 4
我想从上一次更改的列a b c d
中计算值“y”
,如下所示:
id a b c d
1 y y z z
2 y z y y
3 y y y y
id count_y
1 2
2 1
3 4
你能帮我吗?你可以在
设置索引之后执行cumprod
s = df.set_index('id').eq('y').cumprod(axis = 1).sum(axis = 1)
s = s.reset_index(name='count_y')
s
Out[33]:
id count_y
0 1 2
1 2 1
2 3 4
作为你评论中的解释,我想你可以试试这个
df.set_index('id').eq('y').cummin(1).sum(1)
Out[11]:
id
1 2
2 1
3 4
dtype: int64
对于所需输出中的第二行,您的意思是将count_y
设为3吗?@Jeff不,它应该是1,因为我不想在将值更改为xso后对其进行计数,我想它是从右到左的“最新的”?从d
到a
?我想计算最近it从a
到b
的变化。像id2
一样,它在列b
中发生变化,所以我将其计算为1
@亚当·厄尔8