【问题标题】:Getting Type Error Trying to create a month-year column from date ranges in pandas获取类型错误尝试从熊猫中的日期范围创建月年列
【发布时间】:2023-01-04 01:55:54
【问题描述】:

我正在尝试按照 Find all months between two date columns and generate row for each month 提供的解决方案进行操作,但由于遇到错误而碰壁了。我想要做的是为每一行的开始日期和结束日期范围内存在的每个年月创建一个年月列。当我尝试按照上面链接的堆栈进行操作时,出现错误

TypeError:无法将输入...名称:ServiceStartDate,dtype:datetime64 [ns]]类型<class'pandas.core.series.Series'>转换为时间戳

我不知道如何解决这个问题。请帮忙!

样本数据

ID StartDate EndDate
1 311566 2021-10-01 2024-09-30
2 235216 2020-11-01 2020-11-30
3 157054 2021-10-01 2023-09-30
4 159954 2021-01-01 2023-12-31
5 255815 2019-11-01 2022-10-31

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    我找到了解决我的问题的方法(对于长时间的响应延迟感到抱歉)。问题是我的数据有一个与之关联的时间戳。我需要使用以下代码将日期字段更改为 y/m/-01 格式。

    df['date] = df['date'].apply(lambda x: x.strftime('%Y-%m-01'))
    

    然后我使用下面的解决方案将最小日期和最大日期之间存在的所有月份/年份作为一个列。

    df.merge(df.apply(lambda s: pd.date_range(df['date'].min(), 
                                df['date'].max(), freq='MS'), 1).explode("").rename('Month'),
                                left_index=True, right_index=True)
    

    【讨论】:

      猜你喜欢
      • 2020-12-23
      • 2021-06-30
      • 2018-07-13
      • 2018-11-24
      • 2022-01-21
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多