【发布时间】:2019-12-13 18:12:16
【问题描述】:
我正在尝试使用以下格式从 Metar 字符串中提取风向:
EGAA 010020Z 33004KT 300V010 9999 FEW029 04/04 Q1019
我正在使用它来提取风向,这适用于我的大部分数据,但在某些字符串上失败:
df["Wind_Dir"] = df.metar.apply(lambda x: int(re.search(r"\s\d*KT\s", metar_data.metar[0]).group().strip()[:3]))
我想检查它失败的 Metar 字符串,所以我没有将 group() 从 re.search 中拉出来,而是按如下方式应用搜索以获取 re.Match 对象:
df["Wind_Dir"] = df.metar.apply(lambda x: re.search(r"\s\d*KT\s", x))
我尝试过按类型和 Null 进行过滤,但这些都不起作用。
任何帮助将不胜感激。
很遗憾,感谢您的回答,尽管我使用两者来解决我的问题,但我无法将它们都标记为解决方案。
最后我将正则表达式更改为:
df["Wind_Dir"] = df.metar.str.findall(r"Z\s\d\d\d|Z\sVRB")
匹配可变方向,但如果没有df.metar.str.contains(),将无法找到它。
【问题讨论】: