Python 使用.map应用函数时,请使用两列或多列中的数据
我想以YYYY-MM-DD格式计算两个日期之间的差异。当我写入df[“diff”]=df[“date1”]-df[“date2”]时,我得到一个类似于75天的值,我无法排序 如何编写它,以便映射到calc_diff(date1,date2)函数 即I df[“diff”]=df[“date1”]、df[“date2”].地图(计算差异) 当我写下以下内容时,我得到:Python 使用.map应用函数时,请使用两列或多列中的数据,python,datetime,pandas,Python,Datetime,Pandas,我想以YYYY-MM-DD格式计算两个日期之间的差异。当我写入df[“diff”]=df[“date1”]-df[“date2”]时,我得到一个类似于75天的值,我无法排序 如何编写它,以便映射到calc_diff(date1,date2)函数 即I df[“diff”]=df[“date1”]、df[“date2”].地图(计算差异) 当我写下以下内容时,我得到: df["until_payable"] = map(calc_diff, df["ex_div_date"], "date_pay
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'
计算差异中的(d1、d2)
39 y=pd.至_日期时间(d1)
40 x=pd.至_日期时间(d2)
--->41返回x-y
42
43#将列中的数据转换为数据类型
pandas.tslib.时间戳中的pandas/tslib.pyx(pandas/tslib.c:17620)()
TypeError:描述符“\uuuuu sub\uuuuuuu”需要一个“datetime.datetime”对象,但收到一个“str”
如果我正确理解了您,您的问题的解决方案是:
res = map(calc_diff, date1, date2)
请注意,
date1
和date2
应该是相同的长度Zachi Shtain-知道是什么导致了错误-需要一个datetime,但收到了一个字符串?@Yoshisery-您发送的第二个参数是string
而不是datetime
对象
res = map(calc_diff, date1, date2)