如何将日期设置为该月的第一个日期?

新手上路,请多包涵

我有一个带有索引列 = date 的 pandas DataFrame。

输入:

             value
date
1986-01-31  22.93
1986-02-28  15.46

我想把日期定在那个月的第一天

输出:

             value
date
1986-01-01  22.93
1986-02-01  15.46

我尝试了什么:

 df.index.floor('M')
ValueError: <MonthEnd> is a non-fixed frequency

这可能是因为 df 是由 df = df.resample("M").sum() 生成的(此代码的输出是问题开头的输入)

我也试过 df = df.resample("M", convention='start').sum() 。但是,它不起作用。

我知道在 R 中,调用 floor(date, 'M') 很容易。

原文由 Jill Clover 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 540
1 个回答

有一个关于地板问题的 熊猫 问题

建议的方法是

import pandas as pd
pd.to_datetime(df.date).dt.to_period('M').dt.to_timestamp()

原文由 Deo Leung 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题