Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah anda mengubah Pandas DataFrame yang luas kepada format panjang dengan nilai yang mewakili pembolehubah dan tarikh?

Bagaimanakah anda mengubah Pandas DataFrame yang luas kepada format panjang dengan nilai yang mewakili pembolehubah dan tarikh?

Susan Sarandon
Lepaskan: 2024-11-14 11:17:02
asal
227 orang telah melayarinya

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

Membentuk Semula daripada Data Luas:

Dalam bidang manipulasi data, membentuk semula set data yang luas kepada yang panjang adalah operasi penting untuk data integrasi dan analisis. Pertimbangkan senario berikut:

Anda mempunyai bingkai data dalam panda dengan nilai harian untuk pembolehubah AA, BB dan CC, diindeks mengikut tarikh.

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

Anda ingin menukar data ini menjadi format di mana setiap baris mewakili pembolehubah dan tarikh, seperti yang dilihat di bawah:

+------+---------+--------+
| 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      |
+------+---------+--------+
Salin selepas log masuk

Penstrukturan semula ini adalah tugas biasa dalam penyepaduan data dan akan membolehkan anda menggabungkan bingkai data ini dengan yang lain dengan tarikh yang sepadan dan nama lajur awal (AA, BB, CC).

Kaedah: Fungsi Lebur Panda

Nasib baik, panda menawarkan kaedah mudah untuk melakukan transformasi ini: pandas.melt atau DataFrame.melt. Berikut ialah contoh:

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')
Salin selepas log masuk

Ini akan mengubah bingkai data anda kepada format panjang yang diingini:

     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
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah anda mengubah Pandas DataFrame yang luas kepada format panjang dengan nilai yang mewakili pembolehubah dan tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan