【问题标题】:How to set the time stamp of the data frame to thw first day of the month如何将数据框的时间戳设置为当月的第一天
【发布时间】:2021-10-14 15:35:09
【问题描述】:

我有一些数据帧,我正在重新采样以相互匹配。我想将所有数据的 timestamps (index) 设置为进行测量的 dsy 月份的第一天。我在任何地方都找不到如何做到这一点,我得到的最接近的是 resample(period=...),但它让我没有一天。 我试过的代码

df['value'].resample('M',kind = 'period').sum() 

它是这样的,而我希望时间戳具有 2018-09-01 的形式。

【问题讨论】:

    标签: python pandas database dataframe resampling


    【解决方案1】:

    这一行就是你所需要的:

    df.index = pd.to_datetime(df.index).strftime('%Y-%m-%d')
    
    # Output
    #             value
    # 2018-09-01     11
    # 2018-10-01     12
    

    它将您的索引列转换为日期时间类型列。自动插入该月的第一天。详情请见docs

    【讨论】:

    • 我仍然得到作为该月最后一天的时间戳。我使用 format = '%01/%m/%Y',但也不起作用..
    • 奇怪,它对我有用。我修改了答案,强制使用日期格式。你能再试一次吗?
    • 仍然是第 30 天或第 31 天……有没有办法将天数强制为“1”?
    • 我不知道为什么你会默认一个月的最后一天。如果你想强制它,只需使用df.index = df.index.strftime('%Y-%m') + '-01'
    猜你喜欢
    • 2012-06-29
    • 2021-06-11
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 2021-01-24
    • 2021-09-20
    相关资源
    最近更新 更多