2016-10-22 69 views
1

我有一个数据框,每天更新一个日期列。我想用过去30天的数据创建它的副本。过去x天过滤熊猫数据框

我尝试下面的语法根据我了解的R中这样做:

df[df[date]>dt.date.today()-30] 

日期列不是索引,但我不反对以使它所以如果有帮助!

谢谢!

回答

1

试试这个:

import datetime 
import pandas as pd 


df[df.the_date_column.dt.date > datetime.datetime.now() - pd.to_timedelta("30day")] 
+1

美丽。我不得不做的一个小调整是'df [df.the_date_column> datetime.datetime.now() - pd.to_timedelta(“30day”)]' – Josh

0

考虑df

today = pd.datetime.today().date() 
begin = today - pd.offsets.Day(90) 
tidx = pd.date_range(begin, today) 
df = pd.DataFrame(dict(A=np.arange(len(tidx))), tidx) 

你可以切片过去30天这样

cut_off = today - pd.offsets.Day(29) 
df[cut_off:] 

      A 
2016-09-23 61 
2016-09-24 62 
2016-09-25 63 
2016-09-26 64 
2016-09-27 65 
2016-09-28 66 
2016-09-29 67 
2016-09-30 68 
2016-10-01 69 
2016-10-02 70 
2016-10-03 71 
2016-10-04 72 
2016-10-05 73 
2016-10-06 74 
2016-10-07 75 
2016-10-08 76 
2016-10-09 77 
2016-10-10 78 
2016-10-11 79 
2016-10-12 80 
2016-10-13 81 
2016-10-14 82 
2016-10-15 83 
2016-10-16 84 
2016-10-17 85 
2016-10-18 86 
2016-10-19 87 
2016-10-20 88 
2016-10-21 89 
2016-10-22 90