我正在处理一个小时数据框,该数据框从2016年开始每天每小时都有行。从这个每小时的数据框架中,我想删除我在'df_outlayers'数据框中的日期数据框。我尝试了以下方法:
remove = df_hourly.loc[df_outlayers.index]
df_clean = df_hourly.drop(remove.index)
df_clean['2017-04-17']
但它只是删除了当天的第一个小时,例如它删除了行2017-04-17 00:00:00但不删除2017-04-17 01:00:00。如何为那些给出的分层日子删除每小时?
注意:我的'df_outlayers'数据框有一个名为date的索引列,df_outlayers.index给出了例如:
DatetimeIndex(['2016-07-06', '2016-07-08', '2016-10-10', '2017-04-09',
'2017-04-17', '2017-04-26', '2017-07-05', '2017-07-07',
'2017-09-01', '2017-09-22', '2017-09-29'],
dtype='datetime64[ns]', name='date', freq=None)
我的df_hourly数据框还有一个名为'date'的索引列,df_hourly.index例如:
DatetimeIndex(['2014-07-19 00:00:00', '2014-07-19 01:00:00', ...]
dtype='datetime64[ns]', name='date', length=13214, freq=None)
答案 0 :(得分:1)
~
和boolean indexing
似乎需要numpy.in1d
带倒置掩码,因为DatetimeIndex.date
返回numpy array
:
mask = np.in1d(df_hourly.index.date, df_outlayers.index.date)
df_clean = df_hourly[~mask]