簡體   English   中英

如何使用pandas dataframe計算字符串中數字'1'側面最長的連續'0'

[英]How do I count the longest consecutive '0' flanked by number '1' in is string using pandas dataframe

我想做的是使用pandas數據框計算字符串中數字'1'側面最長的連續'0'

這是我的數據集

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

您可以嘗試使用split和count來使用與字符串相關的操作

將列轉換為字符串 - >后跟拆分為“1”並計算最大值

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

日期:

   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'].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)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM