Python 如何删除条件列值上的全天行。。熊猫

Python 如何删除条件列值上的全天行。。熊猫,python,pandas,time-series,row,Python,Pandas,Time Series,Row,我有以下时间序列数据帧 我想删除条件行(每天检查):检查aaa>100,然后删除全天行(在下面,删除所有2015-12-01行,因为aaa列最后3个有1000个值) 我该怎么做呢?我想如果多索引首先按条件比较aaa的值,然后按过滤第一级中的所有值,最后再按过滤条件进行反过滤,则按~: print (df) aaa date time 2015-12-01 00:00:00 0 00:15:0

我有以下时间序列数据帧

我想删除条件行(每天检查):检查aaa>100,然后删除全天行(在下面,删除所有2015-12-01行,因为aaa列最后3个有1000个值)


我该怎么做呢?

我想如果
多索引
首先按条件比较
aaa
的值,然后按过滤第一级中的所有值,最后再按过滤条件进行反过滤,则按
~

print (df)
                      aaa
date       time          
2015-12-01 00:00:00     0
           00:15:00     0
           00:30:00     0
           00:45:00     0
2015-12-02 05:00:00     0
           05:15:00   200
           05:30:00     0
           05:45:00     0
2015-12-03 06:00:00     0
           06:15:00     0
           06:30:00  1000
           06:45:00  1000
           07:00:00  1000

lvl0 = df.index.get_level_values(0)
idx = lvl0[df['aaa'].gt(100)].unique()
print (idx)
Index(['2015-12-02', '2015-12-03'], dtype='object', name='date')

df = df[~lvl0.isin(idx)]
print (df)
                     aaa
date       time         
2015-12-01 00:00:00    0
           00:15:00    0
           00:30:00    0
           00:45:00    0
如果第一列不是索引,则只比较列
日期

print (df)
          date      time   aaa
0   2015-12-01  00:00:00     0
1   2015-12-01  00:15:00     0
2   2015-12-01  00:30:00     0
3   2015-12-01  00:45:00     0
4   2015-12-02  05:00:00     0
5   2015-12-02  05:15:00   200
6   2015-12-02  05:30:00     0
7   2015-12-02  05:45:00     0
8   2015-12-03  06:00:00     0
9   2015-12-03  06:15:00     0
10  2015-12-03  06:30:00  1000
11  2015-12-03  06:45:00  1000
12  2015-12-03  07:00:00  1000

idx = df.loc[df['aaa'].gt(100), 'date'].unique()
print (idx)
['2015-12-02' '2015-12-03']

df = df[~df['date'].isin(idx)]
print (df)
         date      time  aaa
0  2015-12-01  00:00:00    0
1  2015-12-01  00:15:00    0
2  2015-12-01  00:30:00    0
3  2015-12-01  00:45:00    0

前两列是否为多索引?是的,多索引再次欢迎您!还有一件小事,请在以后的问题中添加它是
多索引
;)
print (df)
          date      time   aaa
0   2015-12-01  00:00:00     0
1   2015-12-01  00:15:00     0
2   2015-12-01  00:30:00     0
3   2015-12-01  00:45:00     0
4   2015-12-02  05:00:00     0
5   2015-12-02  05:15:00   200
6   2015-12-02  05:30:00     0
7   2015-12-02  05:45:00     0
8   2015-12-03  06:00:00     0
9   2015-12-03  06:15:00     0
10  2015-12-03  06:30:00  1000
11  2015-12-03  06:45:00  1000
12  2015-12-03  07:00:00  1000

idx = df.loc[df['aaa'].gt(100), 'date'].unique()
print (idx)
['2015-12-02' '2015-12-03']

df = df[~df['date'].isin(idx)]
print (df)
         date      time  aaa
0  2015-12-01  00:00:00    0
1  2015-12-01  00:15:00    0
2  2015-12-01  00:30:00    0
3  2015-12-01  00:45:00    0