Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membentuk Semula Bingkai Data Pandas daripada Format Lebar ke Panjang Menggunakan `pd.melt()`?

Bagaimanakah Saya Boleh Membentuk Semula Bingkai Data Pandas daripada Format Lebar ke Panjang Menggunakan `pd.melt()`?

Susan Sarandon
Susan Sarandonasal
2024-12-22 14:43:14676semak imbas

How Can I Reshape a Pandas DataFrame from Wide to Long Format Using `pd.melt()`?

Tukar Lajur kepada Baris dengan Panda

Soalan ini menangani keperluan untuk mengubah set data CSV di mana maklumat berkaitan tarikh diedarkan merentas berbilang lajur ke dalam format di mana setiap tarikh mempunyai barisan sendiri. Untuk mencapai transformasi ini, pengguna menggunakan fungsi pd.melt.

Struktur CSV asal menyerupai:

location    name    Jan-2010    Feb-2010    March-2010
A           "test"  12          20          30
B           "foo"   18          20          25

Hasil yang diingini ialah jadual dengan lokasi lajur, nama, Tarikh dan Nilai:

location    name    Date        Value
A           "test"  Jan-2010    12       
A           "test"  Feb-2010    20
A           "test"  March-2010  30
B           "foo"   Jan-2010    18       
B           "foo"   Feb-2010    20
B           "foo"   March-2010  25

Fungsi pd.melt menyediakan cara untuk menstruktur semula data. Ia memerlukan beberapa hujah:

  • id_vars: Lajur yang kekal tidak berubah semasa jadual dicairkan. Dalam kes ini, lokasi dan nama.
  • var_name: Nama lajur baharu yang akan menyimpan nama lajur asal (seperti sebelum lebur). Dalam kes ini, Tarikh.
  • value_name: Nama lajur yang akan menyimpan nilai daripada lajur data asal. Dalam kes ini, Nilai.
df.melt(id_vars=["location", "name"],
        var_name="Date",
        value_name="Value")

DataFrame yang terhasil sepadan dengan output yang diingini, dengan setiap bulan kini menduduki baris yang berasingan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membentuk Semula Bingkai Data Pandas daripada Format Lebar ke Panjang Menggunakan `pd.melt()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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