두 개의 데이터 프레임 df_1 및 df_2가 제공됩니다. 여기서 df_1에는 날짜/시간 열과 값 A 및 B가 포함되고 df_2에는 다음 범위가 포함됩니다. 날짜/시간 값과 해당 이벤트 정보를 사용하는 경우 일반적인 작업은 다음 조건에 따라 이러한 데이터프레임을 병합하는 것입니다. df_1의 날짜/시간 값은 df_2에 지정된 범위 내에 있습니다.
이를 달성하기 위한 간단한 접근 방식은 df_2의 시작 및 끝 열에서 간격 인덱스를 생성하고 닫힌 매개변수를 둘 다로 설정하는 것입니다. 이렇게 하면 범위가 포함됩니다.
df_2.index = pd.IntervalIndex.from_arrays(df_2['start'],df_2['end'],closed='both')
간격 인덱스가 생성되면 IntervalIndex의 get_loc 메서드를 사용하여 각 행에 대해 df_1의 날짜/시간 값이 포함된 범위를 찾을 수 있습니다.
df_1['event'] = df_1['timestamp'].apply(lambda x : df_2.iloc[df_2.index.get_loc(x)]['event'])
df_1의 날짜/시간 열에 있는 각 값에 이 함수를 적용하면 다음을 포함하는 새 열인 이벤트를 채울 수 있습니다. df_1의 각 행에 대한 df_2의 해당 이벤트 정보.
이 접근 방식은 Pandas에서 제공하는 강력한 간격 인덱싱 기능을 사용하여 범위 조건을 기반으로 데이터 프레임을 조인하는 효율적인 방법을 제공합니다. 출력은 df_1과 df_2의 모든 열이 포함된 데이터 프레임이 되며, 이벤트 열은 df_1의 각 행에 대해 일치하는 이벤트를 제공합니다.
위 내용은 Pandas의 날짜 시간 범위를 기반으로 DataFrame을 효율적으로 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!