source

Panda에서 날짜/시간 형식을 변경하는 방법

manycodes 2023. 7. 25. 21:10
반응형

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

반응형