日期时间按天数划分

时间:2020-02-05 21:30:52

标签: python pandas dataframe datetime

如何过滤日期超过3天的所有行?

例如,带有2019-01-042019-05-232019-03-04的行将被删除。

import pandas as pd

df = pd.DataFrame({
    'date': ['2019-01-01','2019-01-02','2019-01-03', '2019-01-04',
             '2019-05-20','2019-05-21','2019-05-22', '2019-05-23',
             '2019-03-01','2019-03-02','2019-03-03', '2019-03-04'],
    'category': ['category A', 'category A', 'category A', 'category A', 'category B', 'category B', 'category B', 'category B',
             'category C', 'category C', 'category C', 'category C']})

df['date'] = pd.to_datetime(df['date'], format="%Y/%m/%d").dt.date

print(df)

    date    category
    0   2019-01-01  category A
    1   2019-01-02  category A
....
    10  2019-03-03  category C
    11  2019-03-04  category C

1 个答案:

答案 0 :(得分:0)

>>> df = df.sort_values('category').drop(df[::4].index.to_numpy())                                                                                                                                  

          date    category
1   2019-01-02  category A
2   2019-01-03  category A
3   2019-01-04  category A
5   2019-05-21  category B
6   2019-05-22  category B
7   2019-05-23  category B
9   2019-03-02  category C
10  2019-03-03  category C
11  2019-03-04  category C