임상 데이터를 분석하고 다른 데이터 프레임의 정보를 기반으로 한 데이터 프레임의 정보를 필터링하려고합니다. dataframes 목록의팬더 : 여러 데이터 프레임의 정보를 기반으로 데이터 필터링
하나는 환자가 치료
dfTreatments = pd.DataFrame({'PatientID': [4,4,4,9,9,9,11,11,11], 'TreatmentDate': ['2016-01-01', '2016-01-15', '2016-03-25','2016-01-01','2016-01-15','2016-01-29','2016-01-01','2016-03-15','2016-03-25']})
dfTreatments['TreatmentDate'] = pd.to_datetime(dfTreatments['TreatmentDate'])
PatientID TreatmentDate
0 4 2016-01-01
1 4 2016-01-15
2 4 2016-03-25
3 9 2016-01-01
4 9 2016-01-15
5 9 2016-01-29
6 11 2016-01-01
7 11 2016-03-15
8 11 2016-03-25
에 대한에 와서 다른 dataframe 목록 환자가 합병증으로 병원을 방문하는 것이 날짜 것으로 거슬러 올라간다. 환자 가 이십일 치료를받지 않는 경우에 우리의 연구에서
dfHospitalVisits = pd.DataFrame({'PatientID': [4,4,9,11], 'HospitalVisitDate': ['2016-01-14','2016-03-10','2016-01-28','2016-01-03']})
dfHospitalVisits['HospitalVisitDate'] = pd.to_datetime(dfHospitalVisits['HospitalVisitDate'])
HospitalVisitDate PatientID
0 2016-01-14 4
1 2016-03-10 4
2 2016-01-28 9
3 2016-01-03 11
, 우리는 우리의 분석에서 병원 방문을 제외 할. 은 20 일 간격 갭 전에 마지막 치료에서 제외하기 시작합니다. 예 : 2016-01-15 후에 환자 4에 대한 모든 병원 방문을 제외합니다. 이 예에서
, 환자 4의 2 차 병원을 방문 및 환자 (11)의 병원 방문는 dfHospitalVisits에서 제거 될 것이다.편집 : @Merlin, 지금까지 dfTreatments.groupby('PatientID')['TreatmentDate'].diff()
을 사용하여 환자별로 그룹화 된 치료 날짜 간격을 확보했습니다. 내가 갇혀있는 부분은 dfHospitalVisits의 값을 필터링하기 위해 20보다 큰 치료 날짜의 차이점을 사용하는 방법을 모른다는 것입니다.
당신이 시도 것을 보여주십시오. – Merlin
아이디어를 찾으십시오. http://chrisalbon.com/python/pandas_join_merge_dataframe.html – Merlin
제공된 링크를 살펴 봐야합니다. 코드 작성 서비스가 아닙니다. – Merlin