【问题标题】:Find and convert date patterns using regex python使用正则表达式 python 查找和转换日期模式
【发布时间】:2022-07-21 15:53:38
【问题描述】:

我想将日期从这两种格式 21/01/2022 和 21-Jan-22 转换为 2022 年 1 月 21 日。格式需要 day(2 int) month(3 string) year(4 int)。谢谢

import pandas as pd

date_dict = {
            'date': ['I paid USD 10,000.00 on 21/01/2022 or 21-Jan-22 for car service']
          }
df = pd.DataFrame(data_dict)

【问题讨论】:

  • 所以你想要哪个日期?真正的字符串是两者都有还是只有一个?
  • 不能同时使用两种类型。但可能是两种类型中的一种

标签: python pandas regex


【解决方案1】:

您可以使用正则表达式和pandas.to_datetime:

regex = r'(\d\d/\d\d/\d{4}|\d{1,2}-[a-zA-Z]{3}-\d{2})'
df['new'] = (pd.to_datetime(df['date'].str.extract(regex, expand=False),
                            dayfirst=True)
               .dt.strftime('%d %b %y')
             )

输出:

                                                date        new
0  I paid USD 10,000.00 on 21/01/2022 for car ser...  21 Jan 22
1  I paid USD 10,000.00 on 21-Jan-22 for car service  21 Jan 22

【讨论】:

    猜你喜欢
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    相关资源
    最近更新 更多