gpt4 book ai didi

python - timedelta 不支持的类型

转载 作者:太空宇宙 更新时间:2023-11-03 11:19:57 28 4
gpt4 key购买 nike

我正在尝试通过包含在同一数据框的另一列中的值来增加 pandas 数据框中的日期,如下所示

loans['est_close_date'] = loans['dealdate'] + loans['tenor_weeks'].apply(lambda x: dt.timedelta(weeks =x))

但我不断收到错误:

"unsupported type for timedelta weeks component: numpy.int64" error.

另一方面,像这样的构造

loans['est_close_date'] = loans['dealdate'] + loans['tenor_weeks'].apply(lambda x: dt.timedelta(weeks =1)*x)

工作正常。我不明白第一种方法有什么问题。tenor_weeks 列中没有缺失值。

提前致谢!

最佳答案

对我来说,你的解决方案工作得很好,也许有必要升级 pandas/python。

我用 to_timedelta 添加纯 Pandas 解决方案:

rng = pd.date_range('2017-04-03', periods=10)
loans = pd.DataFrame({'dealdate': rng, 'tenor_weeks': range(1,11)})
print (loans)
dealdate tenor_weeks
0 2017-04-03 1
1 2017-04-04 2
2 2017-04-05 3
3 2017-04-06 4
4 2017-04-07 5
5 2017-04-08 6
6 2017-04-09 7
7 2017-04-10 8
8 2017-04-11 9
9 2017-04-12 10

loans['est_close_date'] = loans['dealdate'] + loans['tenor_weeks'].apply(lambda x: dt.timedelta(weeks =x))
loans['est_close_date1'] = loans['dealdate'] + loans['tenor_weeks'].apply(lambda x: dt.timedelta(weeks =1)*x)

loans['est_close_date2'] = loans['dealdate'] + pd.to_timedelta(loans['tenor_weeks'],unit='w')
print (loans)
dealdate tenor_weeks est_close_date est_close_date1 est_close_date2
0 2017-04-03 1 2017-04-10 2017-04-10 2017-04-10
1 2017-04-04 2 2017-04-18 2017-04-18 2017-04-18
2 2017-04-05 3 2017-04-26 2017-04-26 2017-04-26
3 2017-04-06 4 2017-05-04 2017-05-04 2017-05-04
4 2017-04-07 5 2017-05-12 2017-05-12 2017-05-12
5 2017-04-08 6 2017-05-20 2017-05-20 2017-05-20
6 2017-04-09 7 2017-05-28 2017-05-28 2017-05-28
7 2017-04-10 8 2017-06-05 2017-06-05 2017-06-05
8 2017-04-11 9 2017-06-13 2017-06-13 2017-06-13
9 2017-04-12 10 2017-06-21 2017-06-21 2017-06-21

关于python - timedelta 不支持的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44966229/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com