반응형
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
여기:
- Python 2 https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
- Python 3 https://docs.python.org/3.7/library/datetime.html#strftime-strptime-behavior
데이트에 형식이 혼재되어 있는 경우는, 잊지 말고,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
반응형
'IT' 카테고리의 다른 글
MySQL 트리거에서 PHP 스크립트 호출 (0) | 2022.11.17 |
---|---|
원칙 2 DQL에서 now()를 사용하려면 어떻게 해야 합니까? (0) | 2022.11.17 |
MariaDB over SSL이 작동하지 않습니다. "인증서 확인 실패" (0) | 2022.11.17 |
Mysql: 열 문자 집합 설정 (0) | 2022.11.17 |
WooCommerce 제품이 실제로 품절되지 않은 경우 "품절" 메시지를 표시합니다. (0) | 2022.11.17 |