Это пост и этот пост приблизили меня, но я не смог чтобы решить мою проблему.
У меня есть 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
Я хочу подсчитать нули в каждой строке и поместить их в строку для кодирования данных, но счетчик должен сбрасываться всякий раз, когда нет последовательных нулей.
Для приведенного выше df выходной df будет выглядеть так:
2017-04-03 2017-04-04 2017-04-05 2017-04-06
id
0 inactive_1 active inactive_1 inactive_2
1 inactive_1 active inactive_1 active
2 inactive_1 inactive_2 inactive_3 inactive_4
эта функция очень близка мне, но не учитывает сброс общей суммы, она просто суммирует все экземпляры нуля в строке.
def inactive(s):
np.where(s == 0, 'inactive_' + (s.eq(0).cumsum()).astype(str), s)
df.apply(inactive, 1)
100000, 300
строками, столбцами -cᴏʟᴅsᴘᴇᴇᴅ
решение в3.5
раза медленнее, чемme
;), проверьте время - person jezrael   schedule 19.12.2017