2017-06-24 7 views
0

パンダの毎日のデータから毎月の観測データを取得したいと思います。つまり、その月の5日ごと(2011年1月5日、2011年2月5日、2011年3月5日〜2011年12月25日)またはそれに最も近い取引日にデータを取得したい(たとえば、03-05が存在しない場合は、2011-03-06を検索します)。どうやってやるの?答えは以下パンダの毎日のデータフレームから毎月の観測データを取得

Date   Close 
2011-01-01  100.99 
2011-01-02  100.65 
...... 
2011-12-31  76.08 

答えて

1

はあなたの問題を解決しますが、月ごとに少なくとも一日のデータがなければならないという警告があります:

データフレームのようなものを探します!

df['Date'] = pd.to_datetime(df['Date']) 
df['day'] = df.Date.dt.day 
df['month'] = df.Date.dt.month 
df['year'] = df.Date.dt.year 

def get_nearest_time_data(df, day): 
    newdf = pd.DataFrame() 
    for month in range(1,13): 
     daydf = df[(df.day==day) & (df.month==month)] 
     while (daydf.shape[0]==0): 
      day+=1 
      daydf = df[(df.day==day) & (df.month==month)] 
     newdf = pd.concat([newdf,daydf], ignore_index=True) 
    return newdf 

get_nearest_time_data(df, 5) 
関連する問題