简体   繁体   English

熊猫 timedelta 和过滤负值

[英]pandas timedelta and filtering negative values

I have a pandas dataframe with column time_taken as a timedelta64[ns].我有一个 Pandas 数据框,其中 time_taken 列作为 timedelta64[ns]。 Here's a example of the values :这是值的示例:

idle_time["time_taken"]

0                   NaT
1       00:01:41.648602
2       00:01:40.224034
3       00:01:44.029010
4       00:01:35.649479
              ...      
11608   00:33:18.597127
11609   00:03:09.414821
11610   00:04:43.362200
11611   00:25:36.113369
11612   00:06:27.766094
Name: time_taken, Length: 11613, dtype: timedelta64[ns]

I want to filter for negative values, i know there is one because running the statement idle_time["time_taken"].min() shows a negative.我想过滤负值,我知道有一个是因为运行语句 idle_time["time_taken"].min() 显示负值。 However i want to filter all rows with a negative.但是我想用负数过滤所有行。

I've tried idle_time[idle_time["time_taken"] > 0] but it shows我试过idle_time[idle_time["time_taken"] > 0]但它显示

Invalid comparison between dtype=timedelta64[ns] and int dtype=timedelta64[ns] 和 int 之间的比较无效

Any help is appreciated.任何帮助表示赞赏。

Convert timedeltas to some numbers, eg by Series.dt.total_seconds :将 timedeltas 转换为一些数字,例如通过Series.dt.total_seconds

idle_time[idle_time["time_taken"].dt.total_seconds() > 0]

Or compare by Timedelta :或按Timedelta进行比较:

idle_time[idle_time["time_taken"] > pd.Timedelta(0)]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM