如何解决尝试将 Timedelta 更改为 0
我有以下带有 timedeltas 的数据框:
0 -1 days +10:53:56
1 1 days 10:13:53
2 0 days 00:28:00
3 0 days 01:21:00
4 0 days 00:19:00
5 -1 days +23:59:59
6 NaT
7 0 days 00:00:50
8 NaT
9 0 days 00:38:00
10 -2 days +20:28:13
我想将所有负值更改为 0。
我可以通过设置 df < pd.Timedelta(0)
过滤掉否定词,但是我无法将其更改为 0 days 00:00:00。我试过了:
for time in df[df < Timedelta(0)]:
df = 0
但这没有任何作用。任何帮助表示赞赏
解决方法
我试过了:
df [df
它比您尝试的更简单 - 布尔索引不需要循环:
df[df < pd.Timedelta(0)] = pd.Timedelta(0)
如果数据框中的列多于 Timedelta 列,则当然必须指定列,例如。 G。对于列标签 1:
df.loc[1,df[1] < pd.Timedelta(0)] = pd.Timedelta(0)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。