This帖子和{a2}帖子让我很接近,但我还没能解决我的问题。在
我有一个df看起来像:
2017-04-03 2017-04-04 2017-04-05 2017-04-06
id
0 0.0 active 0.0 0.0
1 0.0 active 0.0 active
2 0.0 0.0 0.0 0.0
我想对每行的0进行计数,并将它们放入一个字符串中对数据进行编码,但是每当没有连续的零时,计数就需要重置。在
对于上述df,输出df如下所示:
^{pr2}$这个函数让我非常接近,但不考虑重置累计数,它只是对行中所有零实例求和。在
def inactive(s):
np.where(s == 0, 'inactive_' + (s.eq(0).cumsum()).astype(str), s)
df.apply(inactive, 1)
有点迂回,但可以通过对每一行应用
groupby
操作,然后使用np.where
有选择地将值应用于原始行。在您可以使用:
计时:
^{pr2}$注意事项:
性能确实取决于数据。在
相关问题 更多 >
编程相关推荐