小编Pyt*_*ast的帖子

如何使用 python pandas 清理多种格式的日期范围?

我有一个数据框,其中包含一些混合格式的日期,如下所示:

import pandas as pd

dates = ['Dec-03',
         '03/11/2003 - 05/04/2004',
         'Apr-04',
         '2004 - 2005',
         '01/02/2005 - 31/03/2005']

df = pd.DataFrame(dates, columns = ["date_range"])
Run Code Online (Sandbox Code Playgroud)

如上例所示,日期可以采用三种格式:两年;一个月;两个约会在一起。

我希望找到一种有效且“pythonic”的方式在数据框中创建“开始日期”和“结束日期”列,结果如下:

    date_range                         start_dates  end_dates
0   Dec-03                             01/12/2003   31/12/2003
1   03/11/2003 - 05/04/2004            03/11/2003   05/04/2004
2   Apr-04                             01/04/2004   30/04/2004
3   2004 - 2005                        01/01/2004   31/12/2005
4   01/02/2005 - 31/03/2005            01/02/2005   31/03/2005
Run Code Online (Sandbox Code Playgroud)

我已经尝试过涉及 df.iterrows 和一些 if 语句的解决方案,但我想知道是否有更有效的方法来解决这个问题。完整的数据集包含数百万行,因此使用矢量化函数或类似的东西会很好地工作。

python dataframe pandas

2
推荐指数
1
解决办法
135
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1