我有一个数据集如下:
0 03/25/93 Total time of visit (in minutes):\n
1 6/18/85 Primary Care Doctor:\n
2 sshe plans to move as of 7/8/71 In-Home Servic...
包含不同格式的日期,如:
^{pr2}$我需要提取日期并按升序排序,同时遵循以下规则:
我必须按时间顺序返回熊猫系列:
例如,如果系列是这样的:
0 1999
1 2010
2 1978
我需要返回以下系列:
0 2
1 4
2 0
其中第一列是索引,第二列是数据集中出现的计数(年)。例如,如果1999年出现两次,它将在第二列中返回两(2)。在
我已经能够提取并匹配日期模式,但是我无法将它们组合到单个表达式中以匹配整个数据帧:
re1 = df.str.extract(r'((?:\d{,2}\s)?(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*(?:-|\.|\s|,)\s?\d{,2}[a-z]*(?:-|,|\s)?\s?\d{2,4})')
re2 = df.str.extract(r'((?:\d{1,2})(?:(?:\/|-)\d{1,2})(?:(?:\/|-)\d{2,4}))')
re3 = df.str.extract(r'((?:\d{1,2}(?:-|\/))?\d{4})')
如何将上述正则表达式组合成一个表达式并将其作为序列返回?在
你可以用
参见regex demo
关键是使用
|
运算符连接部件,同时保持所有内部组不被捕获。必须捕获外部组,以便extract
可以输出匹配项。在相关问题 更多 >
编程相关推荐