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 중국어 웹사이트의 기타 관련 기사를 참조하세요!