>백엔드 개발 >파이썬 튜토리얼 >Pandas에서 넓은 데이터를 긴 형식으로 변환하는 방법은 무엇입니까?

Pandas에서 넓은 데이터를 긴 형식으로 변환하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-14 21:36:02875검색

How to Transform Wide Data to Long Format in Pandas?

Pandas에서 넓은 데이터를 긴 형식으로 재구성

데이터 조작 영역에서 데이터를 넓은 형식에서 긴 형식으로 재구성하는 것은 종종 다음과 같이 발생합니다. 필요성. 다음 pandas 데이터프레임을 고려하세요.

AA BB CC
05/03 1 2 3
06/03 4 5 6
07/03 7 8 9
08/03 5 7 1

이를 원하는 긴 형식으로 변환하려면:

| 금주 모임 | 05/03 | 1 |
| 금주 모임 | 06/03 | 4 |
| 금주 모임 | 07/03 | 7 |
| 금주 모임 | 08/03 | 5 |
| BB | 05/03 | 2 |
| BB | 06/03 | 5 |
| BB | 07/03 | 8 |
| BB | 08/03 | 7 |
| CC | 05/03 | 3 |
| CC | 06/03 | 6 |
| CC | 07/03 | 9 |
| CC | 08/03 | 1 |

넓은 데이터를 긴 형식으로 우아하게 변환하는 pandas.melt 또는 pandas.DataFrame.melt 함수를 사용합니다.

import pandas as pd

df = pd.DataFrame({
    'date' : ['05/03', '06/03', '07/03', '08/03'],
    'AA' : [1, 4, 7, 5],
    'BB' : [2, 5, 8, 7],
    'CC' : [3, 6, 9, 1]
}).set_index('date')

df = df.reset_index()
pd.melt(df, id_vars='date', value_vars=['AA', 'BB', 'CC'])

또는 다음을 호출하여 Reset_index 단계를 생략할 수 있습니다. ignore_index=False로 녹이기:

dfm = df.melt(ignore_index=False).reset_index()

원하는 길이의 결과 형식:

date variable value
0 05/03 AA 1
1 06/03 AA 4
2 07/03 AA 7
3 08/03 AA 5
4 05/03 BB 2
5 06/03 BB 5
6 07/03 BB 8
7 08/03 BB 7
8 05/03 CC 3
9 06/03 CC 6
10 07/03 CC 9
11 08/03 CC 1

이 변환을 통해 공유 날짜 및 열 이름을 기반으로 다른 데이터 프레임과 효율적으로 병합할 수 있습니다.

위 내용은 Pandas에서 넓은 데이터를 긴 형식으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.