Pandas: 목록 열을 여러 열로 분할하는 방법


다음 기본 구문을 사용하여 목록 열을 Pandas DataFrame의 여러 열로 분할할 수 있습니다.

 #split column of lists into two new columns
split = pd. DataFrame (df[' my_column ']. to_list (), columns = [' new1 ',' new2 '])

#join split columns back to original DataFrame
df = pd. concat ([df, split], axis= 1 )

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Pandas에서 목록 열을 여러 열로 분할

points 라는 열에 값 목록이 포함된 다음과 같은 pandas DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Heat', 'Kings', 'Suns'],
                   ' points ': [[99, 105], [94, 113], [99, 97], [87, 95]]})

#view DataFrame
print (df)

    team points
0 Mavs [99, 105]
1 Heat [94, 113]
2 Kings [99, 97]
3 Suns [87, 95]

다음 구문을 사용하여 포인트 열이 game1game2 라는 두 개의 새 열로 분할되는 새 DataFrame을 만들 수 있습니다.

 #split column of lists into two new columns
split = pd. DataFrame (df[' my_column ']. to_list (), columns = [' new1 ',' new2 '])

#view DataFrame
print (split)

   game1 game2
0 99 105
1 94 113
2 99 97
3 87 95

원하는 경우 concat() 함수를 사용하여 이 분할 DataFrame을 원래 DataFrame과 결합할 수 있습니다.

 #join split columns back to original DataFrame
df = pd. concat ([df, split], axis= 1 ) 

#view updated DataFrame
print (df)

    team points game1 game2
0 Mavs [99, 105] 99 105
1 Heat [94, 113] 94 113
2 Kings [99, 97] 99 97
3 Suns [87, 95] 87 95

마지막으로 원하는 경우 DataFrame에서 원래 포인트 열을 제거할 수 있습니다.

 #drop original points column
df = df. drop (' points ', axis= 1 )

#view updated DataFrame
print (df)

    team game1 game2
0 Mavs 99 105
1 Heat 94 113
2 Kings 99 97
3 Suns 87 95

최종 결과는 목록의 원래 포인트 열이 이제 game1game2 라는 두 개의 새로운 열로 분할되는 DataFrame입니다.

참고 : 목록 열에 각 목록에 홀수 개의 값이 포함되어 있는 경우 Pandas는 목록을 열로 분할할 때 누락된 값을 NaN 값으로 채웁니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

색인 없이 Pandas DataFrame을 인쇄하는 방법
Pandas DataFrame의 모든 행을 표시하는 방법
Pandas DataFrame에서 모든 열의 유형을 확인하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다