2016-11-12 65 views
2

我有一个数据帧,看起来像这样:从熊猫据帧复制某些行到一个新的(时间条件)

     pressure mean pressure std    
2016-03-01 00:00:00  615.686441  0.138287 
2016-03-01 01:00:00  615.555000  0.067460 
2016-03-01 02:00:00  615.220000  0.262840 
2016-03-01 03:00:00  614.993333  0.138841 
2016-03-01 04:00:00  615.075000  0.072778 
2016-03-01 05:00:00  615.513333  0.162049 
................ 

第一列是索引列。

我想创建一个只有下午3点和上午03点行一个新的数据帧, 所以它看起来就像这样:

     pressure mean pressure std 
2016-03-01 03:00:00  614.993333  0.138841 
2016-03-01 15:00:00  616.613333  0.129493 
2016-03-02 03:00:00  615.600000  0.068889 
.................. 

任何想法?

谢谢!

回答

3

我无法加载使用pd.read_clipboard()你的数据,所以我要重新创建一些数据:

df = pd.DataFrame(index=pd.date_range('2016-03-01', freq='H', periods=72), 
        data=np.random.random(size=(72,2)), 
        columns=['pressure', 'mean']) 

现在你的数据框应该有一个DatetimeIndex。如果没有,您可以使用df.index = pd.to_datetime(df.index)

那么它很容易使用布尔索引:

df.ix[(df.index.hour == 3) | (df.index.hour == 15)] 

enter image description here

+0

谢谢!!有效 ! – ValientProcess

+0

似乎ix已被弃用。有没有其他新API可以取代它? –

+0

在这个特定的情况下,'.loc'会做同样的事情。你可以参考[这个问题](https://stackoverflow.com/questions/31593201/pandas-iloc-vs-ix-vs-loc-explanation)了解关于ix,iloc和loc的更多信息。 –