[英]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.