首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫dataframe在datetime列中添加整数列

熊猫dataframe在datetime列中添加整数列
EN

Stack Overflow用户
提问于 2017-10-24 10:12:12
回答 2查看 8.5K关注 0票数 7

我有一个名为transaction_date的列,它存储日期,例如1970-01-01payment_plan_days存储任何整数的天数,30,70。

我应该如何将payment_plan_days添加到transaction_date中以创建一个新列为membership_expire_date

我在下面的代码中尝试过,由于它们不是相同的dtype,所以它不起作用。

代码语言:javascript
复制
df_transactions.loc[(df_transactions['membership_expire_date'] == '19700101'), 'membership_expire_date'] = 
    df_transactions.loc[(df_transactions['membership_expire_date'] == '19700101'), 'transaction_date'] 
    + df_transactions.loc[(df_transactions['membership_expire_date'] == '19700101'), 'payment_plan_days']
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-24 10:13:30

我想你需要to_timedelta

代码语言:javascript
复制
df['new'] = df['transaction_date'] + pd.to_timedelta(df['payment_plan_days'], unit='d')

示例:

代码语言:javascript
复制
dates=pd.to_datetime(['1970-01-01','2005-07-17', '2005-07-17'])
df = pd.DataFrame({'transaction_date':dates, 'payment_plan_days':[30,70,100]})

df['new'] = df['transaction_date'] + pd.to_timedelta(df['payment_plan_days'], unit='d')
print (df)
   payment_plan_days transaction_date        new
0                 30       1970-01-01 1970-01-31
1                 70       2005-07-17 2005-09-25
2                100       2005-07-17 2005-10-25
票数 6
EN

Stack Overflow用户

发布于 2017-10-24 10:24:32

与jezrael的回答相同,只使用datetime的timedelta函数:

代码语言:javascript
复制
from datetime import timedelta
dates=pd.to_datetime(['1970-01-01','2005-07-17', '2005-07-17'])
df = pd.DataFrame({'transaction_date':dates, 'payment_plan_days':[30,70,100]})
df.loc[:, 'expiration_date'] = list(map(lambda td, ppd: td+timedelta(ppd), df['transaction_date'], df['payment_plan_days']))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46907811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档