>백엔드 개발 >파이썬 튜토리얼 >변수와 날짜를 나타내는 값을 사용하여 넓은 Pandas DataFrame을 긴 형식으로 어떻게 변환합니까?

변수와 날짜를 나타내는 값을 사용하여 넓은 Pandas DataFrame을 긴 형식으로 어떻게 변환합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-14 11:17:02230검색

How do you transform a wide Pandas DataFrame into a long format with values representing variables and dates?

넓은 데이터에서 재구성:

데이터 조작 영역에서 넓은 데이터 세트를 긴 데이터 세트로 재구성하는 것은 데이터의 중요한 작업입니다. 통합 및 분석. 다음 시나리오를 고려하십시오.

날짜별로 색인이 지정된 변수 AA, BB 및 CC에 대한 일일 값이 있는 pandas의 데이터 프레임이 있습니다.

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

이 데이터를 아래와 같이 각 행이 변수와 날짜를 나타내는 형식입니다.

+------+---------+--------+
| var  | date    | value  |
+------+---------+--------+
| AA   | 05/03   | 1      |
| AA   | 06/03   | 4      |
| AA   | 07/03   | 7      |
| AA   | 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      |
+------+---------+--------+

이 재구성은 데이터 통합의 일반적인 작업이며 이 데이터프레임을 날짜 및 초기 열 이름이 일치하는 다른 데이터프레임과 병합할 수 있게 해줍니다( AA, BB, CC).

방법: Pandas의 Melt 함수

다행히도 pandas는 이러한 변환을 수행하는 간단한 방법인 pandas.melt 또는 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]
})
df.set_index('date', inplace=True)

dfm = df.reset_index().melt(id_vars='date')

이렇게 하면 데이터 프레임이 원하는 긴 형식으로 변환됩니다.

     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 DataFrame을 긴 형식으로 어떻게 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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