python - 我必须从我的数据框的两列计算产量“taux_act”,如下所示:
问题描述
df['maturite'] = df["Date d'échéance"] - df['Date de la valeur']## df['maturite'] > .. ..days
def taux_act(t,m):
if m < timedelta(days =365):
taux = ((1 + t * m)/360)**(365/m)-1
else:
taux = t
df['taux'] = taux_act(df['Taux moyen pondéré'],df['maturite'])
我收到了这个错误:
TypeError:dtype=timedelta64[ns] 和 int 之间的比较无效
解决方案
您可以将函数中 m 的数据类型转换为 timedelta64[ns],如下所示。
df['maturite'] = df["Date d'échéance"].astype('timedelta64[D]')- df['Date de la valeur'].astype('timedelta64[D]')
推荐阅读
- android - Android MediaPlayer 保持背景音乐播放
- mongodb - $addToSet 之后在聚合管道中透视 mongo 数据:一组成为键,一组成为值
- php - 使用 kohanna 模型和搜索功能减少 if/else 语句
- javascript - 为什么我的 foo 循环将值 null 赋予我创建的变量?
- wpf - 在代码隐藏中聚焦最后一个 ListBoxItem
- jquery - TD获得焦点时jQuery激活功能
- excel - 查找具有可能拼写不同的特定标题的列
- javascript - 如何遍历对象属性?
- php - 无法从 Laravel 5.8 中的存储中检索图像
- vue.js - 无法在 data() vue 中编写 api 方法