gpt4 book ai didi

python - 使用单独的列整数向 pandas 中的列添加天数

转载 作者:太空宇宙 更新时间:2023-11-04 08:57:17 24 4
gpt4 key购买 nike

我在该系列中尝试过 datetime.timedelta 以及 pd.DateOffset。两者都不起作用。我知道我可以遍历此数据框并手动添加它们,但我一直在寻找一种矢量化方法。

例子:

d = {pd.Timestamp('2015-01-02'):{'days_delinquent':11}, pd.Timestamp('2015-01-15'):{'days_delinquent':23}}
>>> dataf = pd.DataFrame.from_dict(d,orient='index')
>>> dataf
days_delinquent
2015-01-02 11
2015-01-15 23

只是尝试将 11 天和 23 天添加到下面的行中。我在现实生活中添加的列不是索引,但显然我可以在执行此操作时将其设为索引。

我想这不是不言自明的,但输出将是一个新列,其中包含日期(在本例中为索引)+ datetime.timedelta(days=dataf['days_delinquent'])

最佳答案

您可以将 days_delinquent 列转换为 timedelta64[D](以天为单位的偏移量)并将其添加到索引中,例如:

import pandas as pd

d = {pd.Timestamp('2015-01-02'):{'days_delinquent':11}, pd.Timestamp('2015-01-15'):{'days_delinquent':23}}
df = pd.DataFrame.from_dict(d,orient='index')
df['returned_on'] = df.index + df.days_delinquent.astype('timedelta64[D]')

更好(感谢 DSM )是使用 pd.to_timedelta 这样在需要时更容易更改单位:

df['returned_on'] = df.index + pd.to_timedelta(df.days_delinquent, 'D')

给你:

            days_delinquent returned_on
2015-01-02 11 2015-01-13
2015-01-15 23 2015-02-07

关于python - 使用单独的列整数向 pandas 中的列添加天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28967199/

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