Python 熊猫按持续时间删除行

Python 熊猫按持续时间删除行,python,pandas,dataframe,datetime,Python,Pandas,Dataframe,Datetime,我想按时间条件(忽略日期)删除数据帧行。我的数据包含大约1亿行。我有大约100列,每列有不同的采样频率。 我准备了以下考虑不同采样频率的代码片段: 将熊猫作为pd导入 #离开时间=0.01秒 #下降持续时间=0.1秒 i=pd.日期范围('2018-01-01',周期=1000,频率=2ms') i=i.append(pd.日期范围('2018-01-01',期间=1000,频率=3ms')) i=i.append(局部放电日期范围('2018-01-01',周期=1000,频率=0.5ms'

我想按时间条件(忽略日期)删除数据帧行。我的数据包含大约1亿行。我有大约100列,每列有不同的采样频率。

我准备了以下考虑不同采样频率的代码片段:

将熊猫作为pd导入
#离开时间=0.01秒
#下降持续时间=0.1秒
i=pd.日期范围('2018-01-01',周期=1000,频率=2ms')
i=i.append(pd.日期范围('2018-01-01',期间=1000,频率=3ms'))
i=i.append(局部放电日期范围('2018-01-01',周期=1000,频率=0.5ms'))
数据帧({'A':范围(len(i))},索引=i)
df=df.sort_index()
打印(df)
#按持续时间。。。。

在这个简单的示例中,有一个数据持续约1秒,具有3种不同的采样频率。目标是删除持续时间为(eg)0.1秒的行,并保留持续时间为(eg)0.01秒的行。我如何使用一个班轮呢?

通过
df=df.loc['2018-01-01 00:00.000000':'2018-01-01 00:00:00.000500']
您将获得新的df开关数据,这些数据介于
2018-01-01 00:00.000000
2018-01-01 00:00.000500
现在,您可以应用您的愿望日期过滤器

import pandas as pd

# leave_duration=0.01 seconds
# drop_duration=0.1 seconds

i = pd.date_range('2018-01-01', periods=1000, freq='2ms')
i=i.append(pd.date_range('2018-01-01', periods=1000, freq='3ms'))
i=i.append(pd.date_range('2018-01-01', periods=1000, freq='0.5ms'))
df = pd.DataFrame({'A': range(len(i))}, index=i)
df=df.sort_index()
print(df)

#filter data between 2018-01-01 00:00:00.000000 ':'2018-01-01 00:00:00.000500
df=df.loc['2018-01-01 00:00:00.000000 ':'2018-01-01 00:00:00.000500 ']
print(df)
输出: 在应用数据过滤器之前

                               A
2018-01-01 00:00:00.000000     0
2018-01-01 00:00:00.000000  2000
2018-01-01 00:00:00.000000  1000
2018-01-01 00:00:00.000500  2001
2018-01-01 00:00:00.001000  2002
...                          ...
2018-01-01 00:00:02.985000  1995
2018-01-01 00:00:02.988000  1996
2018-01-01 00:00:02.991000  1997
2018-01-01 00:00:02.994000  1998
2018-01-01 00:00:02.997000  1999

[3000 rows x 1 columns]
应用日期过滤器后:


                               A
2018-01-01 00:00:00.000000     0
2018-01-01 00:00:00.000000  2000
2018-01-01 00:00:00.000000  1000
2018-01-01 00:00:00.000500  2001

你需要的数据为它的总数据提到的日期,我不清楚你到底需要什么。提到的df是您希望从您的总数据中过滤掉的期望日期?我发布了一个答案,但在再次阅读您的问题后,我怀疑我是否清楚您的问题是,我想过滤掉时间范围之间的数据(行)。检查我发布的答案,您可以通过
df=df.loc过滤您的期望日期['2018-01-01 00:00:00.000000':'2018-01-01 00:00:00.000500']
如果我们不在同一页面,请告诉我如何忽略日期,只考虑时间?这是一个loc,如果我有1亿行,如何扩展功能?