从 DataFrame 列中的字符串中提取日期时间信息

Extract Datetime information from a string in a DataFrame column

所以我有版本列,其中包含不均匀模式的数据,因为有些是“,”后跟日期,有些是“,-”模式。

df.head()

17                Paperback,– 1 Nov 2016
18    Mass Market Paperback,– 1 Jan 1991
19                      Paperback,– 2016
20               Hardcover,– 24 Nov 2018
21        Paperback,– Import, 4 Oct 2018

如何将日期提取到单独的列中。我尝试使用 str.split() 但找不到 extract.Is 的特定模式,有什么方法可以做到吗?

obj = df['Edition']
obj.str.split('((?:\d+\s+\w+\s+)?\d{4}$)', expand=True)

obj.str.split('[,–]+').str[0]
obj.str.split('[,–]+').str[-1] # date

尝试使用 dateutil

from dateutil.parser import parse
 
df['Dt']=[parse(i, fuzzy_with_tokens=True)[0] for i in df['column']]