값 범위를 기반으로 데이터 프레임 조인
두 개의 데이터 프레임 df_1 및 df_2가 주어지면 날짜/시간 열 타임스탬프가 되도록 조인하는 것이 가능합니다. df_1의 시작 및 끝 열로 정의된 지정된 범위 내에 속합니다. df_2.
이 작업을 수행하기 위한 한 가지 접근 방식은 시작 및 끝 열에서 간격 인덱스를 생성하고 닫힌 옵션을 둘 다로 설정하여 포함 경계를 보장하는 것입니다. 이 간격 인덱스를 사용하면 get_loc를 활용하여 df_1의 각 타임스탬프에 해당하는 이벤트를 얻을 수 있습니다.
예:
import pandas as pd # Input dataframes df_1 = pd.DataFrame({ 'timestamp': ['2016-05-14 10:54:33', '2016-05-14 10:54:34', '2016-05-14 10:54:35', '2016-05-14 10:54:36', '2016-05-14 10:54:39'], 'A': [0.020228, 0.057780, 0.098808, 0.158789, 0.038129], 'B': [0.026572, 0.175499, 0.620986, 1.014819, 2.384590] }) df_2 = pd.DataFrame({ 'start': ['2016-05-14 10:54:31', '2016-05-14 10:54:34', '2016-05-14 10:54:38'], 'end': ['2016-05-14 10:54:33', '2016-05-14 10:54:37', '2016-05-14 10:54:42'], 'event': ['E1', 'E2', 'E3'] }) # Create interval index df_2.index = pd.IntervalIndex.from_arrays(df_2['start'], df_2['end'], closed='both') # Join dataframes using get_loc df_1['event'] = df_1['timestamp'].apply(lambda x: df_2.iloc[df_2.index.get_loc(x)]['event']) # Output joined dataframe print(df_1)
출력:
timestamp A B event 0 2016-05-14 10:54:33 0.020228 0.026572 E1 1 2016-05-14 10:54:34 0.057780 0.175499 E2 2 2016-05-14 10:54:35 0.098808 0.620986 E2 3 2016-05-14 10:54:36 0.158789 1.014819 E2 4 2016-05-14 10:54:39 0.038129 2.384590 E3
위 내용은 타임스탬프 범위를 기반으로 Pandas DataFrame을 결합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!