2016-08-11 3 views
1

데이터 프레임이 df1이고 날짜 형식 데이터가 포함 된 세 개의 필드가 있습니다. 전화 번호는 'Date 1', 'OC_Date', 'Date 2'입니다. 이다팬더에서 특정 날짜 범위의 데이터 프레임 필터링

Date 1 < OC_Date < Date 2 

이 세 분야에서 날짜의 형식은 다음과 같습니다 : 'Date 1' 사이 'Date 2' 나는 그것이 나에게 'OC_Date'이 행을주는 또 다른 dataframe 같은 얻기 위해이 dataframe를 필터링 할

Date 1 : YYYY-MM-DD 
OC_Date: DD-MM-YYYY:HH:MM:SS # (MM is text, eg. JAN for January) 
Date 2 : YYYY-MM-DD 

미리 감사드립니다.

+0

하지만 난 변환 할 수 없다는 오류를 받고 있어요 string to timestamp.I 또한 def 연결 방법을 사용해 보았지만 동일한 오류가 발생합니다. – Ruffy26

+0

Google, Google, Google! Google for "pandas"가 문자열을 datetime으로 변환합니다. 이 페이지의 표를 참조하십시오 : https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior Google for "pandas between"; "팬더 적용"... – Kartik

+0

@Kartik이 논리를 통해 여기에 질문을 올린 모든 이에 게 이것을 제안 할 수 있습니다. 누구나 Google에서 모든 문서를 읽을 수 있으므로 스택 오버플로가 필요하지 않습니다. 그건 말이되지 않습니다. 처음에 문제를 풀려고 할 때 문제가 게시 될 때 질문을 게시하면 문제가 게시되지 않습니다. 그것이 바로 SO입니다. –

답변

2

먼저 문자열 to_datetime에서 열을 변환 한 후 dt.dateboolean indexing과 날짜를 기준으로 필터링 할 수 있습니다 내가 DF [DF]처럼 연쇄 연산자를 사용하여 시도

import pandas as pd 

df = pd.DataFrame({'Date 1':['2015-01-04','2015-01-05','2015-01-05'], 
        'OC_Date':['05-JAN-2015:10:10:20', 
           '05-JAN-2015:11:15:31', 
           '05-JAN-2015:08:05:09'], 
        'Date 2':['2015-01-06','2015-01-08','2015-01-10']}) 
df['Date 1'] = pd.to_datetime(df['Date 1']) 
df['Date 2'] = pd.to_datetime(df['Date 2']) 
#http://strftime.org/ 
df['OC_Date'] = pd.to_datetime(df['OC_Date'], format='%d-%b-%Y:%H:%M:%S') 
print (df) 
     Date 1  Date 2    OC_Date 
0 2015-01-04 2015-01-06 2015-01-05 10:10:20 
1 2015-01-05 2015-01-08 2015-01-05 11:15:31 
2 2015-01-05 2015-01-10 2015-01-05 08:05:09 

print (df.dtypes) 
Date 1  datetime64[ns] 
Date 2  datetime64[ns] 
OC_Date datetime64[ns] 
dtype: object 

mask = (df['Date 1'].dt.date < df['OC_Date'].dt.date) & 
     (df['OC_Date'].dt.date < df['Date 2'].dt.date) 
print (mask) 
0  True 
1 False 
2 False 
dtype: bool 

print (df[mask]) 
     Date 1  Date 2    OC_Date 
0 2015-01-04 2015-01-06 2015-01-05 10:10:20 
+0

고마워요. 마법 같은 작품! – Ruffy26

+0

수락 해 주셔서 감사합니다. 그리고 당신의 다음 질문을위한 작은 충고 - 나는 당신이 [좋은 재현성 팬더 예제를 만드는 방법] (http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples)을 확인할 수 있다고 생각합니다. 그런 다음 몇 가지 코드 (또는 의사 코드 또는 일부 오류)를 추가하는 것을 잊어 버리지 마십시오. 그러면 질문이 더 매력적 일 것이고 downvotes가 없습니다. 행운을 빕니다! – jezrael

+0

조언 해 주셔서 감사합니다. 나는 코딩에있어서 매우 익숙하다. 팁에 감사드립니다. 좋은 하루 되세요! :) – Ruffy26

관련 문제