将Pandas时间戳重置为每月的第一天

时间:2019-05-06 23:07:20

标签: python pandas datetime

const express = require('express'); const router = express.Router(); const usr = require('../data/users'); //import usr from '../data/users'; // not yet supported (nativelly) //const m = require('../helpers/middlewares'); /* Create a new user */ router.post('/', (req, res) => { if(!req.body.email) { return res.status(404).send({ status: 404, message: 'email is required', }); } else if(!req.body.name) { return res.status(404).send({ status: 404, message: 'name is required' }); } const userNew = { id: usr.length + 1, email: req.body.email, name: req.body.name, password: 'user123', }; usr.push(userNew); return res.status(200).send({ status: 200, message: 'New user added successfully', userNew, }); }); // Routes module.exports = router; 是熊猫数据框。 df列是日期时间字段。

df["Date"]

我想将其重置为第一天。我尝试过:

test_date = df.loc[300, "Date"]  # Timestamp('2019-02-12 00:00:00')

如何将其重置为第一天(最好不加载其他库)?

This post与我要执行的操作类似,但是它使用的是Python 2和较早版本的pandas。

2 个答案:

答案 0 :(得分:3)

您可能正在寻找test_date = test_date.replace(day=1)

datetime.date.replace()

答案 1 :(得分:2)

将数据帧采样为:

di

Out[708]:
                          0
0 2014-08-25 10:00:00+05:30
1 2014-08-26 10:00:00+05:30
2 2014-08-27 10:00:00+05:30
3 2014-08-28 10:00:00+05:30
4 2014-08-29 10:00:00+05:30
5 2014-08-30 10:00:00+05:30
6 2014-08-31 10:00:00+05:30
7 2014-09-01 10:00:00+05:30
8 2014-09-02 10:00:00+05:30
9 2014-09-03 10:00:00+05:30

要获取月份的第一个日期:

di[0].dt.date + pd.offsets.Day() - pd.offsets.MonthBegin()

Out[709]:
0   2014-08-01
1   2014-08-01
2   2014-08-01
3   2014-08-01
4   2014-08-01
5   2014-08-01
6   2014-08-01
7   2014-09-01
8   2014-09-01
9   2014-09-01
Name: 0, dtype: datetime64[ns]