Q. 지정 날짜만 추출해서 다른 데이터 프레임에서 저 날짜로 검색하는 방법은?

지식지존 2019. 04. 12.


2018-10-09 10:00:00 7528000.0

2018-10-09 11:00:00 7531000.0

2018-10-09 12:00:00 7532000.0

2018-10-10 13:00:00 7540000.0

2018-10-10 14:00:00 7550000.0

데이터 프레임에서 추출해낸 이런 Series에서

dateback2 = back[1].index.values
print('오늘날짜', dateback2)

하면 결과값으로

오늘날짜 ['2018-10-09T11:00:00.000000000']

이런식으로 나옵니다.

여기서 뒷부분을 제거하고 2018-10-09만 추출해서 다른 데이터프레임 인덱스를 검색하려고 하는데 어떻게 해야할 까요?

date2 = dateback2.item()
print('오늘날짜', date2)

하니

오늘날짜 1539349200000000000

이런 값으로 나옵니다.

date2 = dateback2.strftime("%Y%m%d")
print('오늘날짜', date2)

하니 error가 뜹니다.

2018-10-09 날짜만 추출해서 다른 데이터 프레임에서 저 날짜로 검색을 하고 싶습니다.

공유하고 보상받기 ♥︎
댓글 0

2개의 답변이 있습니다.

질문자 & 큐레이터 채택
JS2 답변자인증
IT 2019. 04. 12 73%의 채택

C를 얘기하시는거같은데 날짜포맷으로 변환 하시기가 애매하면 가장 간단한 방법이 있습니다.

포맷이 아래와 같이 되어있네요?

2018-10-09 12:00:00 7532000.0

2018-10-10 13:00:00 7540000.0

2018-10-10 14:00:00 7550000.0

그럼 가장 맨 앞에 띄어쓰기가 되어있는 부분을 기준으로 "분리" 시키시면됩니다.

2018-10-10

14:00:00 7550000.0

이런식으로 말이죠.

기본적으로 java, javascript 에서는 split() 이란 내장함수가 있습니다.

C의 경우라면 strtok 를 사용하시면 됩니다.

아래 참고하실만한 URL 드립니다.

https://ra2kstar.tistory.com/49

URL을 보시면 기본적으로 아래와 같습니다.

int main(void){

        char str[] = "apple,banana,cat,dialogue";

        char *ptr;

        int tmp;



        printf("함수 호출 전의 스트링 : %s\n" , str) ;



        //ptr = strtok(str, ",");

        //printf("%s\n" , ptr);



        ptr = strtok(str, ",");



        while(ptr != NULL ){



                printf( "%s\n" , ptr);

                ptr = strtok(NULL, ",");

        }



        printf("함수 호출 후의 스트링 : %s\n" , str);

        return 0;

}
댓글 0
Edwood 답변자인증
Krafton 2019. 04. 12 27%의 채택

파이썬에서 날짜 관련해서 datetime이라는 기본 모듈이 관련 처리에 쓰입니다.

위에 질문에는 간단하게 문자열을 다루는 split()이라는 매써드를 쓰면 간단하게 처리할 수도 있습니다.

아래처럼 사용하면 리스트로 분리되니 필요에 따라 문자열을 잘라쓰시면 되겠습니다.

date = "2018-10-09T11:00:00.000000000"
print(date.split('T'))
댓글 0