【问题标题】:regex for string dates in dataframe数据框中字符串日期的正则表达式
【发布时间】:2019-01-13 08:37:09
【问题描述】:

假设我有一个数据框,其值字符串如下所示:

[26.07. - 08.09.]  

我想在最后一个“.”后面添加“2018”。在日期结束之前,我的输出将是:

[26.07.2018 - 08.09.2018] 

并将其应用于基本具有相同格式的其余数据帧。

到目前为止我有代码:

df.iloc[:,1].replace('.','2018',regex=True)

如何更改我的代码以使其按我的意愿工作?

我这样做是为了最终能够将这些日期转换为可以计算两个日期之间有多少天的日期。

【问题讨论】:

    标签: python regex pandas dataframe


    【解决方案1】:
    a = '[26.07. - 08.09.]'
    aWithYear = [i[:-1]+'2018'+i[-1] for i in a.split('-')]
    
    print('-'.join(aWithYear))
    # prints [26.07.2018 - 08.09.2018]
    

    【讨论】:

      【解决方案2】:

      如果你有,例如,

      df = pd.DataFrame({'col': ['[05.07. - 18.08.]', '[05.07. - 18.09.]']})
      
      col
      0   [05.07. - 18.08.]
      1   [05.07. - 18.09.]
      

      您可以split 并连接str.get(0)str.get(1)

      vals = df.col.str.strip('[]').str.split("- ")
      get = lambda s: vals.str.get(s).str.strip() + '2018'
      df['col'] = '[' + get(0) + ' - ' + get(1) + ']'
      
      
      col
      0   [05.07.2018 - 18.08.2018]
      1   [05.07.2018 - 18.09.2018]
      

      【讨论】:

        猜你喜欢
        • 2019-10-16
        • 2017-04-11
        • 1970-01-01
        • 2012-02-15
        • 1970-01-01
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-28
        相关资源
        最近更新 更多