python - 仅添加到数据框列中的负天数
问题描述
我有一个数据框,在其中我获得了两个不同时间之间的差异列(以下示例):
difference
00:30:15
00:15:00
-1 days +02:27:00
-1 days +00:41:00
这些值被标记为 timedelta 类型。那么我怎样才能只为那些负值添加一天(将差异变为正值)?我试图这样做:
mask=df[df["difference"]<"0"]
df[mask,"difference"]=df["difference"] + pd.Timedelta(days=1)
(引号为零,否则不接受,不知道为什么)
输出:
TypeError: 'DataFrame' 对象是可变的,因此它们不能被散列
然后我尝试:
df.loc[df["difference"]<0, "difference"]=df["difference"] + pd.Timedelta(days=1)
输出:
TypeError:dtype=timedelta64[ns] 和 int 之间的比较无效
所以,我不知道还能做什么。我在这里回顾了很多问题,但到目前为止没有一个对我有帮助。欢迎任何想法。
解决方案
尝试这个:
df.loc[df['difference'] < '0', 'difference'] = df["difference"] + pd.Timedelta(days=1)
推荐阅读
- list - LISP中列表元素的递归处理
- android - 设置 react-native-navigation 版本 2 时出现问题
- reactjs - componentDidMount 功能无法正常工作
- angular - 如何使用 ionic 或 cordova 识别用户电话呼叫何时进行?
- php - 从数据库中打印逗号分隔值
- javascript - 为什么在我的视图中看不到我的总计?
- google-apps-script - 项目中访问的 ScriptCache 是否触发与已发布加载项相同的缓存?
- android - Android Layout- Constraint between the RelativeLayout and LinearLayout that has the same parent
- vue.js - weex 数据更改以更新到子组件
- reactjs - 反应:componentDidMount 中的映射