기술공부/개발_코드

데이터 프레임: 특정 열이 2개 이상의 요소로 이뤄진 리스트 to 각 요소별 새로운 행

넹넹선생님 2024. 4. 16. 11:03
728x90
반응형

제곧내

 

예시:

 

기존 df:

|   ID   |   Name   |            SEASON            |  Value1  |  Value2  |  ...  |  Value50  |
---------------------------------------------------------------------------------------------------
|   1    |   John   |  [Spring, Summer, Autumn]   |   10     |   20     |  ...  |    100    |
|   2    |   Mary   |         [Winter]            |   30     |   40     |  ...  |    200    |
|   3    |   Bob    |  [Spring, Autumn, Winter]  |   50     |   60     |  ...  |    300    |

 

바꾼 df:

|   ID   |   Name   |   SEASON   |  Value1  |  Value2  |  ...  |  Value50  |
------------------------------------------------------------------------------
|   1    |   John   |   Spring   |   10     |   20     |  ...  |    100    |
|   1    |   John   |   Summer   |   10     |   20     |  ...  |    100    |
|   1    |   John   |   Autumn   |   10     |   20     |  ...  |    100    |
|   2    |   Mary   |   Winter   |   30     |   40     |  ...  |    200    |
|   3    |   Bob    |   Spring   |   50     |   60     |  ...  |    300    |
|   3    |   Bob    |   Autumn   |   50     |   60     |  ...  |    300    |
|   3    |   Bob    |   Winter   |   50     |   60     |  ...  |    300    |

 

 

import pandas as pd

# 예시 데이터프레임 생성
data = {
    'ID': [1, 2, 3],
    'Name': ['John', 'Mary', 'Bob'],
    'SEASON': [['Spring', 'Summer', 'Autumn'], ['Winter'], ['Spring', 'Autumn', 'Winter']],
    'Value1': [10, 30, 50],
    'Value2': [20, 40, 60],
    # ... 나머지 열들의 값
}

df = pd.DataFrame(data)

# 'SEASON' 열의 값이 리스트인 경우, 각 요소별로 행을 확장
df_exploded = df.explode('SEASON')

print(df_exploded)
728x90
반응형