Programing

Pandas에서 datetime 형식을 변경하는 방법

lottogame 2020. 12. 15. 08:11
반응형

Pandas에서 datetime 형식을 변경하는 방법


DOB 열 샘플 값은 1/1/2016다음과 같이 기본적으로 개체로 변환되는 형식입니다.

DOB       object

날짜 형식으로 변환

df['DOB'] = pd.to_datetime(df['DOB'])

날짜 변환

2016-01-26

dtype 이다

DOB       datetime64[ns]

이제이 날짜 형식을 01/26/2016다른 일반 날짜 형식 으로 변환하고 싶습니다 . 어떻게하나요?

내가 시도하는 방법이 무엇이든 항상 날짜를 2016-01-26형식으로 표시 합니다.


다른 형식 dt.strftime으로 변환해야하는 경우 사용할 수 있습니다 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'))

아래 코드는 이전 코드 대신 저에게 효과적이었습니다.

df['DOB']=pd.to_datetime(df['DOB'].astype(str), format='%m/%d/%Y')

첫 번째 답변과 비교하여 dt.strftime ()을 먼저 사용하고 pd.to_datetime ()을 사용하는 것이 좋습니다. 이런 식으로 여전히 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)

아래 코드는 'datetime'유형으로 변경되고 지정된 형식 문자열의 형식도 지정합니다. 잘 작동합니다!

df['DOB']=pd.to_datetime(df['DOB'].dt.strftime('%m/%d/%Y'))

이것을 시도하면 날짜 형식이 DD-MM-YYYY로 변환됩니다.

df['DOB'] = pd.to_datetime(df['DOB'], dayfirst = True)

참조 URL : https://stackoverflow.com/questions/38067704/how-to-change-the-datetime-format-in-pandas

반응형