【问题标题】:pandas timedelta and filtering negative valuespandas timedelta 和过滤负值
【发布时间】:2019-12-02 20:03:51
【问题描述】:

我有一个带有 time_taken 列的 pandas 数据框作为 timedelta64[ns]。这是值的示例:

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]

我想过滤负值,我知道有一个,因为运行语句 idle_time["time_taken"].min() 显示负值。但是我想用否定过滤所有行。

我试过idle_time[idle_time["time_taken"] > 0]但它显示了

dtype=timedelta64[ns] 和 int 之间的比较无效

感谢任何帮助。

【问题讨论】:

    标签: python pandas timedelta


    【解决方案1】:

    将时间增量转换为一些数字,例如Series.dt.total_seconds:

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

    或者通过Timedelta比较:

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

    【讨论】:

      猜你喜欢
      • 2018-06-30
      • 1970-01-01
      • 2016-02-20
      • 2014-08-04
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 2022-06-20
      相关资源
      最近更新 更多