Skip to main content

TypeError: unsupported operand type(s) for -: 'DatetimeArray' and 'relativedelta'

I'd like to do a manual train-test-split for a random forest or linear regression on a dataframe called whatever_df based on the Date column. I would use this column to select all rows that have dates earlier than 3 months before the most recent one in the column to make a new dataframe called train_df with those older dates, and a test_df with all the dates within the latest 3 months. In raw format the dataframe looks like:

        PC1         PC2         Date
0      -0.319258    -0.042817   2019-05-24
1      -0.246079    0.131233    2019-05-24
2      -0.037325    0.562841    2019-05-24
3      -0.080725    0.594007    2019-05-24
4       0.133341    0.322822    2019-05-24
             ...    ...   ...   ...
3607    -3.583419   3.766158    2022-06-26
3608    -3.305263   4.019327    2022-06-26
3609    -2.913036   4.854316    2022-06-26
3610    -2.755733   4.873996    2022-06-26
3611    -2.535929   4.582312    2022-06-26

So what I'd want for train_df would be all the rows where Date is up through March 2022 inclusive and test_df would be all the rows for March 2022-June 2022. I know I could just hardcode this but I would like a dynamic way to select rows based on month values, and I know with datetime formatted columns I could find the newest date with just max(df['Date']) but I'm not sure how to say in Python subtract 3 months from that

I have tried this:

from datetime import datetime
from dateutil.relativedelta import relativedelta
train_df = whatever_df[whatever_df['Date'] - relativedelta(months=3)]

But I get

TypeError: unsupported operand type(s) for -: 'DatetimeArray' and 'relativedelta'

Part of the problem is that each month's day in the Date column is somewhat arbitrary, so there really is no row with 2022-03-26 in the Date column, unless by sheer coincidence. Therefore, I need a way to select for just the month of the date in the Date column, and not exactly 3 months earlier to the day.



source https://stackoverflow.com/questions/73534022/typeerror-unsupported-operand-types-for-datetimearray-and-relativedelta

Comments

Popular posts from this blog

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype

Why is my reports service not connecting?

I am trying to pull some data from a Postgres database using Node.js and node-postures but I can't figure out why my service isn't connecting. my routes/index.js file: const express = require('express'); const router = express.Router(); const ordersCountController = require('../controllers/ordersCountController'); const ordersController = require('../controllers/ordersController'); const weeklyReportsController = require('../controllers/weeklyReportsController'); router.get('/orders_count', ordersCountController); router.get('/orders', ordersController); router.get('/weekly_reports', weeklyReportsController); module.exports = router; My controllers/weeklyReportsController.js file: const weeklyReportsService = require('../services/weeklyReportsService'); const weeklyReportsController = async (req, res) => { try { const data = await weeklyReportsService; res.json({data}) console...

How to split a rinex file if I need 24 hours data

Trying to divide rinex file using the command gfzrnx but getting this error. While doing that getting this error msg 'gfzrnx' is not recognized as an internal or external command Trying to split rinex file using the command gfzrnx. also install'gfzrnx'. my doubt is I need to run this program in 'gfzrnx' or in 'cmdprompt'. I am expecting a rinex file with 24 hrs or 1 day data.I Have 48 hrs data in RINEX format. Please help me to solve this issue. source https://stackoverflow.com/questions/75385367/how-to-split-a-rinex-file-if-i-need-24-hours-data