我试图将一个函数应用于日期列表,但是我不断得到一个溢出错误。你知道吗
我试过将函数应用于单个单元格,甚至应用于列的最大值,以查看这是否是错误。然而,这并不是错误,我也不知道该怎么办。你知道吗
以下是我在数据框中的列,Days\u Until:
Index Days
0 -50 days
1 -26 days
2 13 days
3 -53 days
4 -42 days
5 -22 days
6 -16 days
7 53 days
8 -57 days
9 -48 days
10 -40 days
11 -26 days
12 -22 days
13 14 days
14 -54 days
15 -47 days
16 -27 days
17 -1 days
18 18 days
19 42 days
20 -56 days
21 -53 days
22 -43 days
23 -30 days
24 -16 days
25 20 days
26 -54 days
27 -47 days
28 -40 days
29 -26 days
...
704 -40 days
705 -51 days
706 -47 days
707 -44 days
708 -43 days
709 -44 days
710 -11 days
711 26 days
712 91 days
713 -52 days
714 -34 days
715 -54 days
716 -51 days
717 47 days
718 -50 days
719 -44 days
720 -28 days
721 -49 days
722 -41 days
723 -35 days
724 -34 days
725 -28 days
726 -20 days
727 41 days
728 -50 days
729 -8 days
730 -49 days
731 44 days
732 -43 days
733 -45 days
Name: time_weight_spt9, dtype: timedelta64[ns]
下面是我要应用于列的函数:
from math import pow
def exp_decay(days):
days = getattr(days, "days", days)
return pow(.5, (days/30.))
我知道这个函数可以工作,因为我测试它的最大天数是到[“Days”]。你知道吗
Days_Until["Days"].max()
>> 185
return pow(.5, (Days_Until["Days"].max()/30.))
>> 0.0139202924709
所以我不知道为什么我会得到:
Days_Until["Days"].apply(exp_decay)
>> OverflowError: math range error
在我的列上运行apply函数时。你知道吗
建议?你知道吗
同样,min-in-59,所以我不认为这会对结果有影响。你知道吗
*编辑*
正如furas所建议的:
from math import pow
def exp_decay(days):
print days
days = getattr(days, "days", days)
return pow(.5, (days/30.))
现在我得到一行输出:
-4320000000000000 nanoseconds
同样的错误:
OverflowError: math range error
我的日子被解读为纳秒吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐