基于熊猫时间序列的过滤

时间:2019-07-07 14:39:08

标签: pandas python-2.7 time-series

有一个捕获每秒钟能源消耗的时间序列,对于一个月的数据,将其加载到熊猫数据框中,并在时间戳上进行索引。并且该窗口将近3个小时(可能介于2小时50分钟到3小时10分钟之间)。该窗口每天发生一个月,因此目标是捕获每天的确切窗口持续时间

                         energy_consumed
timestamp   
2011-08-01 00:00:00-07:00   1322
2011-08-01 00:00:01-07:00   1322
2011-08-01 00:00:02-07:00   1328
2011-08-01 00:00:03-07:00   1328
2011-08-01 00:00:04-07:00   1328
2011-08-01 00:00:05-07:00   1328
2011-08-01 00:00:06-07:00   1328
2011-08-01 00:00:07-07:00   1320
2011-08-01 00:00:08-07:00   1320
2011-08-01 00:00:09-07:00   1320
2011-08-01 00:00:10-07:00   1320
2011-08-01 00:00:11-07:00   1320
2011-08-01 00:00:12-07:00   1320
2011-08-01 00:00:13-07:00   1320
2011-08-01 00:00:14-07:00   1320
2011-08-01 00:00:15-07:00   1320
2011-08-01 00:00:16-07:00   1320
2011-08-01 00:00:17-07:00   1318
2011-08-01 00:00:18-07:00   1318
2011-08-01 00:00:19-07:00   1318

完整的数据文件here

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用.isin()方法?

基本上,它将根据您选择的列的列表中的特定值过滤您的DataFrame

因此,首先必须从energy_consumed列中获取所有值为>1500的值,然后将它们全部放入列表中,并将该列表用作.isin()方法中的参数:

energy_greater_than_condition_list = [x for x in df['energy_consumed'].values.tolist() if x > 1500]

df = df.loc[df['energy_consumed'].isin(energy_greater_than_condition_list)]

执行上面的代码后,此df的所有timestampenergy_consumed值,仅energy_consumed值大于1500

我希望这会有所帮助:))。