如何从Pandas数据框中切片周期性时间间隔数据?
我有一个气象数据集,里面记录了4年间每15分钟的数据。我想从每年的3月30日到4月25日这段时间里提取数据。我该怎么做呢?
谢谢
雨果
data = pd.read_csv(("/user_home/w_hugopires/dados/dados_meteo.csv"),names=['POM','DTM','RNF','WET','HMD','TMP','DEW','INF'])
data['DTM'] = pd.to_datetime(data['DTM'], coerce = True)
idx = pd.MultiIndex.from_arrays(data[['POM','DTM']].values.T)
data.index = idx
POM DTM RNF WET HMD TMP DEW INF
QuintaVilar 2011-11-01 00:00:00 QuintaVilar 2011-11-01 00:00:00 0 0 0 0 0 0
2011-11-01 00:15:00 QuintaVilar 2011-11-01 00:15:00 0 0 0 0 0 0
2011-11-01 00:30:00 QuintaVilar 2011-11-01 00:30:00 0 0 0 0 0 0
2011-11-01 00:45:00 QuintaVilar 2011-11-01 00:45:00 0 0 0 0 0 0
2011-11-01 01:00:00 QuintaVilar 2011-11-01 01:00:00 0 0 0 0 0 0
我想我可能还有一个重复的索引……但是如果我只按日期时间来建立索引,因为它不是唯一的,所以会报错。
1 个回答
0
希望这能帮到你:
>>> import pandas as p
>>> dates = p.date_range('2000-1-1', periods=4000)
>>> df = p.DataFrame(index=dates,columns=['DTM','RNF','WET','HMD','TMP','DEW','INF'])
>>> rows = ['2000-01-04','2003-01-04','2008-09-28']
>>> df.head(2)
DTM RNF WET HMD TMP DEW INF
2000-01-01 NaN NaN NaN NaN NaN NaN NaN
2000-01-02 NaN NaN NaN NaN NaN NaN NaN
[2 rows x 7 columns]
>>> df.tail(2)
DTM RNF WET HMD TMP DEW INF
2010-12-12 NaN NaN NaN NaN NaN NaN NaN
2010-12-13 NaN NaN NaN NaN NaN NaN NaN
[2 rows x 7 columns]
>>> df.ix[rows]
DTM RNF WET HMD TMP DEW INF
2000-01-04 NaN NaN NaN NaN NaN NaN NaN
2003-01-04 NaN NaN NaN NaN NaN NaN NaN
2008-09-28 NaN NaN NaN NaN NaN NaN NaN