问题:Python中两个日期之间的差异
我有两个不同的日期,我想知道它们之间的天数差异。日期格式为YYYY-MM-DD。
我有一个可以在日期中添加或减去给定数字的功能:
def addonDays(a, x):
ret = time.strftime("%Y-%m-%d",time.localtime(time.mktime(time.strptime(a,"%Y-%m-%d"))+x*3600*24+3600))
return ret
其中A是日期,x是我要添加的天数。结果是另一个日期。
我需要一个可以给出两个日期的函数,结果将是一个以天为单位的日期差的整数。
回答 0
使用-
得到两者之间的区别datetime
对象,并采取days
会员。
from datetime import datetime
def days_between(d1, d2):
d1 = datetime.strptime(d1, "%Y-%m-%d")
d2 = datetime.strptime(d2, "%Y-%m-%d")
return abs((d2 - d1).days)
回答 1
另一个简短的解决方案:
from datetime import date
def diff_dates(date1, date2):
return abs(date2-date1).days
def main():
d1 = date(2013,1,1)
d2 = date(2013,9,13)
result1 = diff_dates(d2, d1)
print '{} days between {} and {}'.format(result1, d1, d2)
print ("Happy programmer's day!")
main()
回答 2
我尝试了上面larsmans发布的代码,但是有两个问题:
1)原样的代码将引发mauguerra提到的错误2)如果将代码更改为以下内容:
...
d1 = d1.strftime("%Y-%m-%d")
d2 = d2.strftime("%Y-%m-%d")
return abs((d2 - d1).days)
这会将您的datetime对象转换为字符串,但是有两件事
1)尝试执行d2-d1将失败,因为您无法在字符串上使用减号运算符,并且2)如果阅读了上述答案的第一行,则想在两个datetime对象上使用-运算符,但是将它们转换为字符串
我发现您实际上只需要以下内容:
import datetime
end_date = datetime.datetime.utcnow()
start_date = end_date - datetime.timedelta(days=8)
difference_in_days = abs((end_date - start_date).days)
print difference_in_days
回答 3
试试这个:
data=pd.read_csv('C:\Users\Desktop\Data Exploration.csv')
data.head(5)
first=data['1st Gift']
last=data['Last Gift']
maxi=data['Largest Gift']
l_1=np.mean(first)-3*np.std(first)
u_1=np.mean(first)+3*np.std(first)
m=np.abs(data['1st Gift']-np.mean(data['1st Gift']))>3*np.std(data['1st Gift'])
pd.value_counts(m)
l=first[m]
data.loc[:,'1st Gift'][m==True]=np.mean(data['1st Gift'])+3*np.std(data['1st Gift'])
data['1st Gift'].head()
m=np.abs(data['Last Gift']-np.mean(data['Last Gift']))>3*np.std(data['Last Gift'])
pd.value_counts(m)
l=last[m]
data.loc[:,'Last Gift'][m==True]=np.mean(data['Last Gift'])+3*np.std(data['Last Gift'])
data['Last Gift'].head()
回答 4
pd.date_range(’2019-01-01’,’2019-02-01’)。shape [0]
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。