2016-10-22 106 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