簡體   English   中英

不同版本的正則表達式字符串

[英]Regex string for different versions

我正在嘗試隔離版本號不等於 .0 的 Pandas Dataframe 中的實例——即,如果有版本 10.0、10.1 和 10.2,我只想要 select 版本 10.1 和 10.2。 有誰知道正確的正則表達式來完成這個? 謝謝!

  • 使用Boolean 索引
  • 在 . 上拆分字符串. 並查看索引 1 處的值
  • 不清楚這是一列str還是float類型。
    • 如果列是str類型,去掉.astype(str)
import pandas as pd

df = pd.DataFrame({'versions': [10.0, 10.1, 10.2, 10.19]})

 versions
    10.00
    10.10
    10.20
    10.19

df_f = df[df.versions.astype(str).str.split('.', expand=True)[1] != '0']

 versions
    10.10
    10.20
    10.19

嘗試使用帶有str.contains的模式r'\b\d+.0\b'來創建 boolean 掩碼,用於切出.0字符串。 它只切出.0並保留.00 ,如 output

樣品 df:

  version
0    10.5
1    10.2
2    10.0
3     9.0
4    9.18
5   10.00

m = df.version.str.contains(r'\b\d+.0\b')
df[~m]

Out[54]:
  version
0    10.5
1    10.2
4    9.18
5   10.00

暫無
暫無

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

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