Panda에서 날짜/시간 형식을 변경하는 방법
내 에 내데프은이 .DOB
기본적으로 Pandasd 유형 'object'로 변환되는 열(예시 형식)입니다.
을 날 형 변 하 는 중 환 로 식으로 이것을 날짜 것.df['DOB'] = pd.to_datetime(df['DOB'])
날짜가 다음으로 변환됩니다.dtype
다음과 같습니다.datetime64[ns]
.
이제 이 날짜 형식을 또는 다른 일반 날짜 형식으로 변환합니다.제가 그걸 어떻게 합니까?
시도하든, (, 표니다시됩날가짜법상▁(다▁in▁(니▁the표어▁date시)에 날짜가 표시됩니다.2016-01-26
포맷).
변환이 필요한 경우 사용할 수 있습니다.datetime
형식으로 (단, 다른형단로으 (식, 참고)))dtype
다음과 같은 컬럼이 될 것입니다.object
(string
)):
import pandas as pd
df = pd.DataFrame({'DOB': {0: '26/1/2016', 1: '26/1/2016'}})
print (df)
DOB
0 26/1/2016
1 26/1/2016
df['DOB'] = pd.to_datetime(df.DOB)
print (df)
DOB
0 2016-01-26
1 2016-01-26
df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y')
print (df)
DOB DOB1
0 2016-01-26 01/26/2016
1 2016-01-26 01/26/2016
형식은 변경하지만 유형은 변경하지 않음:
df['date'] = pd.to_datetime(df["date"].dt.strftime('%Y-%m'))
사이에는 차이가 있습니다
- 데이터 프레임 셀의 내용(이진값) 및
- 우리, 인간을 위한 프레젠테이션(표시).
그래서 질문은 다음과 같습니다.데이터/데이터 유형 자체를 변경하지 않고 데이터의 적절한 프레젠테이션에 도달하는 방법은 무엇입니까?
정답은 다음과 같습니다.
- 데이터 프레임을 표시하기 위해 주피터 노트북을 사용하는 경우, 또는
- HTML 파일의 형태로 프레젠테이션에 도달하고 싶다면 (많은 여분이 준비되어 있더라도)
id
그리고.class
추가 CSS 스타일링을 위한 속성 - 사용할 수도 있고 사용하지 않을 수도 있습니다.
멋을 부리다스타일을 지정해도 데이터 프레임 열의 데이터/데이터 유형은 변경되지 않습니다.
이제 Jupyter 노트북에서 접근하는 방법을 보여드리겠습니다. HTML 파일 형식의 프레젠테이션은 이 답변의 끝에 있는 노트를 참조하십시오.
는 당신의 칼럼을 당의칼라고 합니다.DOB
이미 유형이 있습니다(사용자가 유형에 도달하는 방법을 알고 있음을 나타냄).기본 스타일을 보여주기 위해 간단한 데이터 프레임(열 하나만 있음)을 준비했습니다.
스타일 없음:
df
DOB 0 2019-07-03 1 2019-08-03 2 2019-09-03 3 2019-10-03
다음과 같은 스타일로 연출
mm/dd/yyyy
:df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
DOB 0 07/03/2019 1 08/03/2019 2 09/03/2019 3 10/03/2019
다음과 같은 스타일로 연출
dd-mm-yyyy
:df.style.format({"DOB": lambda t: t.strftime("%d-%m-%Y")})
DOB 0 03-07-2019 1 03-08-2019 2 03-09-2019 3 03-10-2019
조심해!
프레임이 입니다. 클래스의 개체입니다.Styler
다시 할당하지 마십시오.
수행 안 함:
df = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")}) # Don't do this!
은 ()▁accessler▁(모frame다▁its있ible▁has니▁its습ler▁by▁sty수▁(▁object)를 통해 Styler 객체에 액세스할 수 있습니다..style
재산, 그리고 우리는 이것을 바꿨습니다.df.style
데이터 프레임 자체가 아니라 개체입니다.)
질문 및 답변:
Q: 주피터 노트북 셀에서 마지막 명령으로 사용된 Styler 개체(또는 반환하는 표현식)가 Styler 개체 자체가 아닌 (스타일링된) 테이블을 표시하는 이유는 무엇입니까?
A: 모든 스타일러 객체에는 콜백 메서드가 있기 때문입니다.
._repr_html_()
데이터 프레임을 멋진 HTML 테이블로 렌더링하기 위한 HTML 코드를 반환합니다.주피터 노트북 IDE는 이 메서드를 자동으로 호출하여 해당 메서드가 있는 개체를 렌더링합니다.
참고:
스타일 설정(즉, 데이터/데이터 유형을 변경하지 않고 데이터 프레임을 올바르게 출력하는 경우)에 주피터 노트북이 필요하지 않습니다.
Styler 객체에 메서드가 있습니다.render()
HTML 코드가 포함된 문자열을 얻고자 하는 경우(예: 포맷된 데이터 프레임을 웹에 게시하거나 단순히 HTML 형식으로 표를 표시하는 경우):
df_styler = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
HTML_string = df_styler.render()
첫 번째 답변과 비교하여, 저는 사용을 추천합니다.dt.strftime()
처음에 그리고 그 다음에pd.to_datetime()
이렇게 하면 날짜/시간 데이터 유형이 계속 생성됩니다.
예를들면,
import pandas as pd
df = pd.DataFrame({'DOB': {0: '26/1/2016 ', 1: '26/1/2016 '})
print(df.dtypes)
df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y')
print(df.dtypes)
df['DOB1'] = pd.to_datetime(df['DOB1'])
print(df.dtypes)
이전 코드 대신 아래 코드가 작동했습니다.
df['DOB']=pd.to_datetime(df['DOB'].astype(str), format='%m/%d/%Y')
이거 드셔보세요.날짜 형식이 DD-MM-YYYY로 변환됩니다.
df['DOB'] = pd.to_datetime(df['DOB'], dayfirst = True)
아래 코드는 'datetime' 형식으로 변경되며 지정된 형식 문자열의 형식도 변경됩니다.
df['DOB'] = pd.to_datetime(df['DOB'].dt.strftime('%m/%d/%Y'))
아래는 저에게 효과가 있었던 코드입니다.그리고 우리는 서식에 대해 매우 조심해야 합니다.아래 링크는 기존 형식을 알고 원하는 형식으로 변경하는 데 유용합니다(strftime() 및 strptime() 형식 코드(strftime() 및 strptime() 동작):
data['date_new_format'] = pd.to_datetime(data['date_to_be_changed'] , format='%b-%y')
언급URL : https://stackoverflow.com/questions/38067704/how-to-change-the-datetime-format-in-pandas
'source' 카테고리의 다른 글
히스토그램 산점도 행렬 lib (0) | 2023.07.25 |
---|---|
MySQL/MariaDB 업데이트 카운터 그룹 기준 (0) | 2023.07.25 |
mysql: 두 날짜-시간 사이의 레코드 수 가져오기 (0) | 2023.07.25 |
jQuery AJAX 응답 구문 분석 중 (0) | 2023.07.25 |
PyCharm에서 Python 버전을 선택하는 방법은 무엇입니까? (0) | 2023.07.25 |