从 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']]
所以我有版本列,其中包含不均匀模式的数据,因为有些是“,”后跟日期,有些是“,-”模式。
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']]