[코딩테스트]/[Pandas]

[LeetCode - Pandas] (Easy) 2889. Reshape Data: Pivot

잰잰' 2025. 3. 27. 15:16

문제

DataFrame weather
+-------------+--------+
| Column Name | Type   |
+-------------+--------+
| city        | object |
| month       | object |
| temperature | int    |
+-------------+--------+

 

각 행이 특정 월에 대한 온도를 나타내고, 각 도시가 별도의 열로 표시되도록 데이터를 피벗하는 솔루션을 작성하세요. 결과 형식은 아래 예시와 같습니다.

 

Example 1:
Input:
+--------------+----------+-------------+
| city         | month    | temperature |
+--------------+----------+-------------+
| Jacksonville | January  | 13          |
| Jacksonville | February | 23          |
| Jacksonville | March    | 38          |
| Jacksonville | April    | 5           |
| Jacksonville | May      | 34          |
| ElPaso       | January  | 20          |
| ElPaso       | February | 6           |
| ElPaso       | March    | 26          |
| ElPaso       | April    | 2           |
| ElPaso       | May      | 43          |
+--------------+----------+-------------+
Output:
+----------+--------+--------------+
| month    | ElPaso | Jacksonville |
+----------+--------+--------------+
| April    | 2      | 5            |
| February | 6      | 23           |
| January  | 20     | 13           |
| March    | 26     | 38           |
| May      | 43     | 34           |
+----------+--------+--------------+

 

표가 피벗되어, 각 열은 도시를 나타내고, 각 행은 특정 월을 나타냅니다.

 

풀이

import pandas as pd

def pivotTable(weather: pd.DataFrame) -> pd.DataFrame:
    df_p = weather.pivot(index='month', columns='city', values='temperature')
    
    return df_p

 

개념 정리

pivot() ? 두 개의 column을 각각 row/column index로 데이터를 재 정렬하는 것

df.pivot(index='새로운 행 인덱스 컬럼명', columns='열로 변경할 컬럼명', values='새로운 값이 될 컬럼명')