Как посчитать самый длинный последовательный '0' в окружении числа '1' в строке, используя pandas dataframe - PullRequest
2 голосов
/ 10 июля 2019

Я хочу сделать, я считаю самый длинный последовательный '0' в окружении числа '1' в строке, используя pandas dataframe

Вот мой набор данных

Id     label
1          1
2         11
3        101
4      10101
5       1001

Вот мой ожидаемый результат

Id     label   result
1          1        0
2         11        0
3        101        1
4      10101        1
5       1001        2

Ответы [ 2 ]

5 голосов
/ 10 июля 2019

Вы можете попробовать использовать операции, связанные со строками, с разделением и счетом

Преобразовать столбец в строку -> с последующим разделением с помощью '1' и подсчетом максимального значения

df['result'] = df.label.astype(str).str.split('1').apply(lambda x: len(max(x)))

Out:

   Id      label  result
0   1   1         0
1   2   11        0
2   3   101       1
3   4   10101     1
4   5   1001      2
3 голосов
/ 10 июля 2019

После разделения получить максимальное значение длины списков и получить длину:

df['result'] = df['label'].astype(str).str.split('1').apply(lambda x: len(max(x, key=len)))
print (df)
   Id  label  result
0   1      1       0
1   2     11       0
2   3    101       1
3   4  10101       1
4   5   1001       2

Другое решение:

df['result'] = df['label'].apply(lambda x: len(max(str(x).split('1'), key=str)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...