如何从Pandas数据帧中切割周期性数据区间?

时间:2014-05-30 10:25:00

标签: python 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

我想我也有一个重复的索引...但是如果我尝试仅使用DateTime进行索引,因为它不是唯一的,它会引发错误

1 个答案:

答案 0 :(得分: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