选择与Python中的日期正则表达式匹配的数据帧行

选择与Python中的日期正则表达式匹配的数据帧行,python,dataframe,Python,Dataframe,在以下数据框中,如何选择日期与“2018-06%”匹配的行 Date Cost Source 2018-06-01 00:00:77 0.03 RFP 2018-06-01 00:05:77 0.01 RFP 2018-06-01 04:09:77 0.90 EFO 2018-05-02 06:99:08 0.07 THP 2018-07-01 09:05:79 0.20 RFP

在以下数据框中,如何选择日期与“2018-06%”匹配的行

Date                     Cost   Source
2018-06-01 00:00:77      0.03   RFP
2018-06-01 00:05:77      0.01   RFP
2018-06-01 04:09:77      0.90   EFO
2018-05-02 06:99:08      0.07   THP
2018-07-01 09:05:79      0.20   RFP
预期产量

Date                     Cost   Source
2018-06-01 00:00:77      0.03   RFP
2018-06-01 00:05:77      0.01   RFP
2018-06-01 04:09:77      0.90   EFO

看起来您的时间戳不好,这将使转换为datetime和按月搜索变得困难

我的第一个建议是修复上游的数据,尽管如果这不是一个选项,或者如果您设置使用正则表达式进行匹配,您只需使用
^2018-06

df[df.Date.str.match(r'^2018-06')]

                  Date  Cost Source
0  2018-06-01 00:00:77  0.03    RFP
1  2018-06-01 00:05:77  0.01    RFP
2  2018-06-01 04:09:77  0.90    EFO
正则表达式非常简单:

^           # Asserts beginning of string
2018-06     # matches your date

看起来您的时间戳不好,这将使转换为datetime和按月搜索变得困难

我的第一个建议是修复上游的数据,尽管如果这不是一个选项,或者如果您设置使用正则表达式进行匹配,您只需使用
^2018-06

df[df.Date.str.match(r'^2018-06')]

                  Date  Cost Source
0  2018-06-01 00:00:77  0.03    RFP
1  2018-06-01 00:05:77  0.01    RFP
2  2018-06-01 04:09:77  0.90    EFO
正则表达式非常简单:

^           # Asserts beginning of string
2018-06     # matches your date

谢谢你,克里斯,成功了!时间戳不是问题,我只想从数据框中选择当前月份数据。我无法将您的时间戳转换为日期时间,因为hh:mm:ss无效。如果你把它们作为日期时间,有一个更简单的方法来解决这个问题。谢谢克里斯,这很有效!时间戳不是问题,我只想从数据框中选择当前月份数据。我无法将您的时间戳转换为日期时间,因为hh:mm:ss无效。如果将它们作为日期时间,有一种更简单的方法来解决这个问题。