Pandas str.extract 返回 NaN

社会演员多 python 375

原文标题Pandas str.extract returning NaN

我有以下df

Trends                       Value   
2021-12-13T08:00:00.000Z       45
2021-12-13T07:00:00.000Z       32
2021-12-13T06:42:10.000Z       23
2021-12-13T06:27:00.000Z       45
2021-12-10T05:00:00.000Z       23

我运行了以下行:

df['Trends'].str.extract('^(.*:[1-9][1-9].*)$', expand=True)

它返回:

0
NaN  
NaN   
2021-12-13T06:42:10.000Z  
2021-12-13T06:27:00.000Z   
NaN     

我的目标是使用正则表达式,提取任何分钟和秒数大于零的趋势。正则表达式有效(经过测试)并且该行也有效,但我不明白的是为什么它不匹配时会返回NaN?我查看了其他几个 SO,这条线几乎相同。

我的预期结果:

2021-12-13T06:42:10.000Z  
2021-12-13T06:27:00.000Z   

原文链接:https://stackoverflow.com//questions/71477299/pandas-str-extract-returning-nan

回复

我来回复
  • anon01的头像
    anon01 评论

    您的解决方案很接近;您可以使用 str.match 获取匹配项,然后过滤:

    df[df.Trends.str.match('^(.*:[1-9][1-9].*)$')].Trends

    输出:

    2    2021-12-13T06:42:10.000Z
    3    2021-12-13T06:27:00.000Z
    
    2年前 0条评论