将某些行从pandas dataframe复制到新的(时间条件)

时间:2016-11-12 10:19:36

标签: python pandas dataframe

我有一个如下所示的数据框:

                       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点和凌晨3点的新数据帧, 所以它看起来像这样:

                       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
..................

有什么想法吗?

谢谢!

1 个答案:

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