使用.map应用函数时,使用两列或多列中的数据

时间:2015-10-03 06:11:12

标签: python datetime pandas

我想以YYYY-MM-DD格式计算两个日期之间的差异。当我写df [“diff”] = df [“date1”] - df [“date2”]时,我得到一个75天的值,我无法排序。

如何编写它以便我映射到函数calc_diff(date1,date2)其中

def calc_diff(date1,date2):
x = float(date2-date1)
return x

即。我df [“diff”] = df [“date1”],df [“date2”]。map(calc_diff)

当我写下以下内容时,我得到:

df["until_payable"] = map(calc_diff, df["ex_div_date"], "date_payable")

def calc_diff(d1,d2):
    y = pd.to_datetime(d1)
    x = pd.to_datetime(d2)
    return x-y

错误:

<ipython-input-167-b151c936730f> in calc_diff(d1, d2)
     39     y = pd.to_datetime(d1)
     40     x = pd.to_datetime(d2)
---> 41     return x-y
     42 
     43 #convert the data in columns to data types

pandas/tslib.pyx in pandas.tslib._Timestamp.__sub__ (pandas/tslib.c:17620)()

TypeError: descriptor '__sub__' requires a 'datetime.datetime' object but received a 'str'

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么解决问题的方法是:

res = map(calc_diff, date1, date2)

请注意,date1date2的长度应相同