기본적으로 열이 날짜 문자열 인 팬더 데이터 프레임이 있습니다. 나중에 다음과 같이 특정 값을 찾을 수 있도록 각 값을 datetime으로 변환하고 싶습니다.
df = pd.DataFrame({'DATESTAMP': ['01/01/2017','02/01/2017','03/01/2017']})
df['DATESTAMP2']=pd.to_datetime(df['DATESTAMP'])
date = datetime.strptime('02/01/2017', '%d/%m/%Y')
date in df['DATESTAMP2']
False
보시다시피 날짜를 감지하지 못합니다. 이유를 확인한 결과 새 DATESTAMP2
열의 형식 이
df['DATESTAMP2']
Out[296]:
0 2017-01-01
1 2017-01-02
2 2017-01-03
Name: DATESTAMP2, dtype: datetime64[ns]
df['DATESTAMP2'][2]
Out[279]: Timestamp('2017-01-03 00:00:00')
이것은 datetime이 아니고, date
var 와 비교할 수없는 타임 스탬프 입니다.
이 문제를 해결하는 방법이 있습니까? 실제로 열을 타임 스탬프가 아닌 datetime으로 변환하는 것입니까?
두 가지 문제 :
in
연산자를 사용하면 무엇을 기대하고 있지 않습니다. 값이 아닌 인덱스를 봅니다. 일반적으로을 사용 .values
하지만 일반적으로 작동하지 않는 날짜에는을 사용해야 to_list()
합니다.다음은 두 가지 맥락의 변화입니다. to_datetime()
1)을 처리 하기 위해에 형식을 추가 to_list()
하고 2)를 처리하기 위해
import pandas as pd
from datetime import datetime
df = pd.DataFrame({'DATESTAMP': ['01/01/2017','02/01/2017','03/01/2017']})
df['DATESTAMP2']=pd.to_datetime(df['DATESTAMP'], format='%d/%m/%Y')
date = datetime.strptime('02/01/2017', '%d/%m/%Y')
print(date in df['DATESTAMP2'].to_list())
타임 스탬프와 datetime은 문제가되지 않습니다. 에서 타임 스탬프 문서 :
Timestamp는 python의 Datetime에 해당하는 pandas이며 대부분의 경우 교환 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다