Vasilii Naumushkin
Vasilii Naumushkin

Reputation: 3

How to remove rows in pandas of type datetime64[ns] by date?

I'm pretty newbie, started to use python for my project. I have dataset, first column has datetime64[ns] type

     <class 'pandas.core.frame.DataFrame'>
     RangeIndex: 5889 entries, 0 to 5888
     Data columns (total 3 columns):
      #   Column  Non-Null Count  Dtype         
     ---  ------  --------------  -----         
      0   date    5889 non-null   datetime64[ns]
      1   title   5889 non-null   object        
      2   stock   5889 non-null   object        
     dtypes: datetime64[ns](1), object(2)
     memory usage: 138.1+ KB

and

type(BA['date'])

gives

pandas.core.series.Series

date has format 2020-06-10 I need to delete all instances before specific date, for example 2015-09-09

What I tried:

  1. convert to string. Failed
  2. Create conditions using:
.df.year <= %y & .df.month <= %m
<= ('%y-%m-%d')
create data with datetime() method
create variable with datetime64 format
  1. just copy with .loc() and .copy()

All of this failed, I had all kinds of error, like it's not int, its not datetime, datetime mutable, not this, not that, not a holy cow

How can this pandas format can be more counterintuitive, I can't believe, for first time I feel like write a parser CSV in C++ seems easier than use prepared library in python

Thank you for understanding

Upvotes: 0

Views: 813

Answers (1)

Utsav
Utsav

Reputation: 5918

Toy Example

df = pd.DataFrame({'date':['2021-1-1', '2020-12-6', '2019-02-01', '2020-02-01']})
df.date = pd.to_datetime(df.date)
df

Input df

    date
0   2021-01-01
1   2020-12-06
2   2019-02-01
3   2020-02-01

Delete rows before 2020.01.01.
We are selecting the rows which have dates after 2020.01.01 and ignoring old dates.

df.loc[df.date>'2020.01.01']

Output

    date
0   2021-01-01
1   2020-12-06
3   2020-02-01

If we want the index to be reset

df = df.loc[df.date>'2020.01.01']
df

Output

    date
0   2021-01-01
1   2020-12-06
2   2020-02-01

Upvotes: 1

Related Questions