IT

DataFrame 열 유형을 문자열에서 날짜/시간으로 변환

itgroup 2022. 11. 17. 21:08
반응형

DataFrame 열 유형을 문자열에서 날짜/시간으로 변환

dd/mm/yyy 형식의 문자열 DataFrame 열을 데이터 시간으로 변환하려면 어떻게 해야 합니까?

가장 쉬운 방법은 다음과 같습니다.

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

또,dayfirst(그러나 이것은 엄격하지 않다는 것을 주의한다.)

다음은 작동 중인 기능입니다.

In [11]: pd.to_datetime(pd.Series(['05/23/2005']))
Out[11]:
0   2005-05-23 00:00:00
dtype: datetime64[ns]

특정 형식을 전달할 수 있습니다.

In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y")
Out[12]:
0   2005-05-23
dtype: datetime64[ns]

날짜 열이 '2017-01-01' 형식의 문자열인 경우 팬더 유형을 사용하여 날짜/시간으로 변환할 수 있습니다.

df['date'] = df['date'].astype('datetime64[ns]')

나노초가 아닌 Day 정밀도를 원하는 경우 datetime64 [D]를 사용합니다.

print(type(df_launath['date'].iloc[0])) 

수율

<class 'pandas._libs.tslib.Timestamp'>

팬더를 사용할 때와 똑같습니다.종료_datetime

'%Y-%m-%d' 이외의 다른 형식에서도 시도할 수 있지만, 적어도 이 형식은 작동합니다.

까다로운 형식을 지정할 경우 다음을 사용할 수 있습니다.

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

상세 정보format여기:

데이트에 형식이 혼재되어 있는 경우는, 잊지 말고,infer_datetime_format=True더 편하게 살 수 있게.

df['date'] = pd.to_datetime(df['date'], infer_datetime_format=True)

출처 : pd.to_datetime

커스터마이즈된 어프로치를 원하는 경우:

def autoconvert_datetime(value):
    formats = ['%m/%d/%Y', '%m-%d-%y']  # formats to try
    result_format = '%d-%m-%Y'  # output format
    for dt_format in formats:
        try:
            dt_obj = datetime.strptime(value, dt_format)
            return dt_obj.strftime(result_format)
        except Exception as e:  # throws exception when format doesn't match
            pass
    return value  # let it be if it doesn't match

df['date'] = df['date'].apply(autoconvert_datetime)

언급URL : https://stackoverflow.com/questions/17134716/convert-dataframe-column-type-from-string-to-datetime

반응형