【问题标题】:Extract Datetime information from a string in a DataFrame column从 DataFrame 列中的字符串中提取日期时间信息
【发布时间】:2021-04-16 07:53:15
【问题描述】:

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

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() 但找不到要提取的特定模式。有什么方法可以做到吗?

【问题讨论】:

  • obj.str.extract('((?:\d+\s\w+\s+)?\d{4}$)')

标签: python-3.x pandas dataframe machine-learning feature-engineering


【解决方案1】:

尝试使用dateutil

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

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-14
      • 2019-06-06
      • 2011-03-31
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多