Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah anda mengubah Pandas DataFrame yang luas kepada format panjang dengan nilai yang mewakili pembolehubah dan tarikh?
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 | +---------+----+----+----+
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 | +------+---------+--------+
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 Melt 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')
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
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!