Python Pandas: 使用用户自定义函数填充空白变量
Python Pandas: Using a user defined function to fill in a blank variable
我正在尝试找出一种使用用户定义的函数来填充空白列的方法。我有一个开始日期列和一个结束日期列。结束日期当前为空白。数据已作为 csv 读入名为 df 的 pandas 数据帧。
我特别想做的是构建一个用户定义的函数,该函数将开始日期列中的日期加上 1 年,然后将其放入结束日期列。大意是这样的:
起始数据帧:
Start_Date End_Date
12/4/2013 NaN
07/16/2012 NaN
03/05/1999 NaN
增加一年的输出:
Start_Date End_Date
12/04/2013 12/03/2014
07/16/2012 07/15/2013
03/05/1999 03/04/2000
我意识到这可以通过以下代码完成:
from datetime import timedelta
df['END_DATE'] = df['START_DATE'] + timedelta(days=365)
但我真的很想使用用户定义的函数(如果可能的话):
def add_1_year(x):
ed = [x['START_DATE']+ timedelta(days=365)
return pd.Series(ed)
df['END_DATE'].apply(add_1_year)
df[['START_DATE','END_DATE']]
我希望这同样有意义,但我们将不胜感激任何建议。
谢谢
假设 'Start_Date' 已经是一个日期时间:
def add_1_year(x):
x['End_Date'] = x['Start_Date']+ timedelta(days=365)
return x
df.apply(add_1_year,axis=1)
应该做
我正在尝试找出一种使用用户定义的函数来填充空白列的方法。我有一个开始日期列和一个结束日期列。结束日期当前为空白。数据已作为 csv 读入名为 df 的 pandas 数据帧。
我特别想做的是构建一个用户定义的函数,该函数将开始日期列中的日期加上 1 年,然后将其放入结束日期列。大意是这样的:
起始数据帧:
Start_Date End_Date
12/4/2013 NaN
07/16/2012 NaN
03/05/1999 NaN
增加一年的输出:
Start_Date End_Date
12/04/2013 12/03/2014
07/16/2012 07/15/2013
03/05/1999 03/04/2000
我意识到这可以通过以下代码完成:
from datetime import timedelta
df['END_DATE'] = df['START_DATE'] + timedelta(days=365)
但我真的很想使用用户定义的函数(如果可能的话):
def add_1_year(x):
ed = [x['START_DATE']+ timedelta(days=365)
return pd.Series(ed)
df['END_DATE'].apply(add_1_year)
df[['START_DATE','END_DATE']]
我希望这同样有意义,但我们将不胜感激任何建议。
谢谢
假设 'Start_Date' 已经是一个日期时间:
def add_1_year(x):
x['End_Date'] = x['Start_Date']+ timedelta(days=365)
return x
df.apply(add_1_year,axis=1)
应该做