Pandas dataframe에서 행을 복제하는 방법
다음 기본 구문을 사용하여 Pandas DataFrame의 각 행을 여러 번 복제할 수 있습니다.
#replicate each row 3 times df_new = pd. DataFrame ( np.repeat ( df.values , 3 ,axis= 0 ))
NumPy Repeat() 함수의 두 번째 인수에 있는 숫자는 각 행을 복제할 횟수를 지정합니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: Pandas DataFrame에서 행 복제
다양한 농구 선수에 대한 정보가 포함된 다음과 같은 pandas DataFrame이 있다고 가정합니다.
import pandas as pd #create dataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'], ' points ': [18, 20, 19, 14, 14, 11], ' assists ': [5, 7, 7, 9, 12, 5], ' rebounds ': [11, 8, 10, 6, 6, 5]}) #view DataFrame print (df) team points assists rebounds 0 A 18 5 11 1 B 20 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6 5 F 11 5 5
다음 구문을 사용하여 DataFrame의 각 행을 세 번 복제할 수 있습니다.
import numpy as np #define new DataFrame as original DataFrame with each row repeated 3 times df_new = pd. DataFrame ( np.repeat ( df.values , 3 ,axis= 0 )) #assign column names of original DataFrame to new DataFrame df_new. columns = df. columns #view new DataFrame print (df_new) team points assists rebounds 0 A 18 5 11 1 A 18 5 11 2 A 18 5 11 3 B 20 7 8 4 B 20 7 8 5 B 20 7 8 6 C 19 7 10 7 C 19 7 10 8 C 19 7 10 9 D 14 9 6 10 D 14 9 6 11 D 14 9 6 12 E 14 12 6 13 E 14 12 6 14 E 14 12 6 15 F 11 5 5 16 F 11 5 5 17 F 11 5 5
새 DataFrame에는 원본 DataFrame의 각 행이 각각 세 번씩 복제되어 포함됩니다.
인덱스 값도 재설정되었습니다.
이제 인덱스 값의 범위는 0에서 17까지입니다.
참고 : NumPy의 반복() 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas: 두 열의 차이점을 찾는 방법
Pandas: 두 줄의 차이점을 찾는 방법
Pandas: 이름별로 열을 정렬하는 방법