【发布时间】:2019-08-31 11:27:29
【问题描述】:
我有一个如下数据集:
import pandas as pd
dic={"ID":[1,2,3,4,5,6],
"Size":["3-4mm","12mm",math.nan,"1 mm","1mm, 2mm, 3mm","13*18mm"]}
dt = pd.DataFrame(dic)
所以,数据集是:
ID Size
1 3-4mm
2 12mm
3 NaN
4 1 mm
5 1mm, 2mm, 3mm
6 13*18mm
在Size 列中,我应该只有 3 个有效模式,并且除了这 3 个之外的任何东西都是无效的。这3种模式如下
-
3-4mm(int-intmm) NaN-
4mm(intmm)
我想知道我怎样才能拥有指定具有无效大小模式的行的ID 的函数?
所以,在我的例子中:
ID
4
5
6
原因是它们的大小格式不正确。
我对解决方案没有偏好,但我想最简单的解决方案来自Regx
【问题讨论】:
-
@CodeManiac 你能写一个完整的答案吗?此外,它似乎选择了有效模式,同时我要求 invalids
-
使用@CodeManiac 正则表达式模式,执行如下操作:
dt.loc[~dt.Size.str.contains('^(?:\d+-\d+mm|\d+mm)$',na=True),'ID'] -
@anky_91 随时作为答案发布
-
@anky_91 我不熟悉 python 语法,所以无法用正确的语法解释来创建答案,我很高兴你可以继续发帖 :)
标签: regex python-3.x pandas