如何过滤日期超过3天的所有行?
例如,带有2019-01-04
,2019-05-23
和2019-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
答案 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