반응형
팬더와 엑셀 스타일 데이트 변환
Excel 형식의 데이터 타임을 제공하는 xml 파일을 구문 분석해야 합니다. 예를 들어 다음과 같습니다.42580.3333333333
.
판다는 그 숫자를 일반으로 바꿀 수 있는 방법을 제공하나요?datetime
오브젝트?
좋아, 가장 쉬운 건 이 빌딩을 건설하는 것이다.TimedeltaIndex
플로트에서 이 값을 스칼라 날짜/시간에 추가합니다.1900,1,1
:
In [85]:
import datetime as dt
import pandas as pd
df = pd.DataFrame({'date':[42580.3333333333, 10023]})
df
Out[85]:
date
0 42580.333333
1 10023.000000
In [86]:
df['real_date'] = pd.TimedeltaIndex(df['date'], unit='d') + dt.datetime(1900,1,1)
df
Out[86]:
date real_date
0 42580.333333 2016-07-31 07:59:59.971200
1 10023.000000 1927-06-12 00:00:00.000000
네, 엑셀은 날짜가 좀 이상한 것 같아요. @ayhan:
In [89]:
df['real_date'] = pd.TimedeltaIndex(df['date'], unit='d') + dt.datetime(1899, 12, 30)
df
Out[89]:
date real_date
0 42580.333333 2016-07-29 07:59:59.971200
1 10023.000000 1927-06-10 00:00:00.000000
관련 항목:python datetime.datetime을 Excel 일련 번호로 변환하는 방법
직접 해석할 수 있습니다.pd.to_datetime
키워드 포함unit='D'
그리고.origin='1899-12-30'
:
import pandas as pd
df = pd.DataFrame({'xldate': [42580.3333333333]})
df['date'] = pd.to_datetime(df['xldate'], unit='D', origin='1899-12-30')
df['date']
Out[2]:
0 2016-07-29 07:59:59.999971200
Name: date, dtype: datetime64[ns]
추가 판독치:
- 1899년 12월 30일 이후의 이야기는 무엇입니까?
- Martijn Pieters로부터의 답변 < 60의 엑셀 서수 값을 올바르게 처리하는 방법
서드파티 라이브러리는 다음 주소로 전달하기 전에 사용할 수 있습니다.
import xlrd
def read_date(date):
return xlrd.xldate.xldate_as_datetime(date, 0)
df = pd.DataFrame({'date':[42580.3333333333, 10023]})
df['new'] = pd.to_datetime(df['date'].apply(read_date), errors='coerce')
print(df)
date new
0 42580.333333 2016-07-29 08:00:00
1 10023.000000 1927-06-10 00:00:00
pd의 "Apply lambda"로 해결할 수 있는 또 다른 옵션입니다.시리즈:
xl_date = 42580
df['DATE SERIES'] = df['DATE SERIES'].apply(lambda x: datetime.fromordinal(datetime(1900, 1, 1).toordinal() + xldate - 2))
언급URL : https://stackoverflow.com/questions/38454403/convert-excel-style-date-with-pandas
반응형
'programing' 카테고리의 다른 글
UIScroll View 콘텐츠란부동산 삽입 대상? (0) | 2023.04.13 |
---|---|
Swift에서 지연을 발생시키는 방법은 무엇입니까? (0) | 2023.04.13 |
읽기 전용 GUI 속성을 ViewModel로 되돌리는 중 (0) | 2023.04.13 |
Intelij 터미널에서 git 설정 (0) | 2023.04.13 |
WPF 창의 시작 위치 변경 (0) | 2023.04.13 |