python - Pandas 和 DateTime TypeError:无法将 TimedeltaIndex 与浮点类型进行比较
问题描述
我有一个 pandas DataFrame Series 时差,如下所示:
print(delta_t)
1 0 days 00:00:59
3 0 days 00:04:22
6 0 days 00:00:56
8 0 days 00:01:21
19 0 days 00:01:09
22 0 days 00:00:36
...
(完整的 DataFrame 有一堆我丢弃的 NaN)。
我想知道哪些 delta_t 小于 1 天、1 小时、1 分钟,所以我尝试了:
delta_t_lt1day = delta_t[np.where(delta_t < 30.)]
但后来得到了一个:
TypeError: cannot compare a TimedeltaIndex with type float
一点帮助?!?!
解决方案
假设您的系列是timedelta
格式,您可以跳过np.where
, 和索引使用类似这样的东西,您可以使用适当的单位将您的实际值与其他时间增量进行比较:
delta_t_lt1day = delta_t[delta_t < pd.Timedelta(1,'D')]
delta_t_lt1hour = delta_t[delta_t < pd.Timedelta(1,'h')]
delta_t_lt1minute = delta_t[delta_t < pd.Timedelta(1,'m')]
您将获得以下系列:
>>> delta_t_lt1day
0
1 00:00:59
3 00:04:22
6 00:00:56
8 00:01:21
19 00:01:09
22 00:00:36
Name: 1, dtype: timedelta64[ns]
>>> delta_t_lt1hour
0
1 00:00:59
3 00:04:22
6 00:00:56
8 00:01:21
19 00:01:09
22 00:00:36
Name: 1, dtype: timedelta64[ns]
>>> delta_t_lt1minute
0
1 00:00:59
6 00:00:56
22 00:00:36
Name: 1, dtype: timedelta64[ns]
推荐阅读
- excel - 列出文件夹中的文件 excel onedrive
- firebase-authentication - Google / DialogFlow 上的操作:从没有转换对象的 idToken 获取用户数据
- firebase - Firebase 好友列表关系
- jquery - jquery对图像没有响应的爆炸效果
- javascript - 为什么当我通过 fetch API 请求记录我的 React 状态 setState 时会收到两个响应?
- java - 有没有办法使用 Apache Commons Digester 从 xml 中添加 Arraylist 中键的所有值?
- ios - 图像不是从一个 VC 到另一个 VC
- matlab - 如何在 matlab 或 simulink 中对组合(电气和机械)系统执行鲁棒控制
- python - Python 单元测试 - 运行时的模拟补丁?
- aws-lambda - 带有 API Gateway 的 AWS Lambda 返回 500 错误并带有 hello-world 蓝图