繁体   English   中英

Pandas数据框将整数列添加到datetime列

[英]Pandas dataframe add integer columns into datetime columns

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

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

我尝试使用下面的代码并且它不起作用,因为它们不是相同的dtype。

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']

我想你需要to_timedelta

df['new'] = df['transaction_date'] + pd.to_timedelta(df['payment_plan_days'], unit='d')

样品:

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

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

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']))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM