Python의 두 날짜 차이
저는 두 개의 다른 날짜가 있는데 그 날짜의 차이를 알고 싶어요.날짜 형식은 YYY-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는 추가할 일수입니다.그리고 결과는 또 다른 날짜입니다.
날짜를 2개 지정할 수 있는 기능이 필요하고, 그 결과 날짜 차이가 있는 int가 필요합니다.
사용하다-
차이를 두다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)
또 다른 간단한 솔루션:
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()
내장 확장 기능인 서드파티 라이브러리를dateutil
사용할 수 있습니다.datetime
.
모듈에서의 날짜 해석은 매우 간단합니다.
from dateutil import parser
date1 = parser.parse('2019-08-01')
date2 = parser.parse('2019-08-20')
diff = date2 - date1
print(diff)
print(diff.days)
위의 코드를 사용해 보았습니다만, 몇 가지 문제가 있습니다.
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
이것을 시험해 보세요.
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()
몇 가지 코드를 시도했지만 (파이썬 3) 다음과 같은 간단한 코드를 사용하게 되었습니다.
from datetime import datetime
df['difference_in_datetime'] = abs(df['end_datetime'] - df['start_datetime'])
start_datetime 및 end_datetime 열이 있는 경우datetime64[ns]
포맷, datetime이 그것을 이해하고 일수 + 타임스탬프(단위:timedelta64[ns]
포맷합니다.
일수 차이만 표시하는 경우 start_datetime과 end_datetime의 날짜 부분만 구분하면 됩니다(시간 부분에도 해당).
df['start_date'] = df['start_datetime'].dt.date
df['end_date'] = df['end_datetime'].dt.date
그런 다음 다음을 실행합니다.
df['difference_in_days'] = abs(df['end_date'] - df['start_date'])
pd.date_range'2019-01-01', '2019-02-01').모양[0]
언급URL : https://stackoverflow.com/questions/8419564/difference-between-two-dates-in-python
'sourcecode' 카테고리의 다른 글
mysql에서 에폭 번호를 사람이 읽을 수 있는 날짜로 변환하는 중 (0) | 2022.09.04 |
---|---|
f는 왜 float 값 뒤에 배치됩니까? (0) | 2022.09.04 |
Larabel 테이블 열 유형을 변경할 수 없습니다. (0) | 2022.09.04 |
선언된 순서대로 키/값을 유지하는 방법 (0) | 2022.09.04 |
jsdoc에서 "object" 인수를 어떻게 설명합니까? (0) | 2022.09.04 |