Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Membentuk Semula Bingkai Data Pandas Menggunakan Fungsi Lebur dan Kamus?

Bagaimana untuk Membentuk Semula Bingkai Data Pandas Menggunakan Fungsi Lebur dan Kamus?

Barbara Streisand
Lepaskan: 2024-11-22 07:08:10
asal
899 orang telah melayarinya

How to Reshape a Pandas DataFrame Using the Melt Function and a Dictionary?

Fungsi Lebur Panda: Membentuk Semula Bingkai Data untuk Analisis

Soalan:

Pertimbangkan kerangka data dengan berbilang lajur dan a kamus:

df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014] ], lajur=['Amy', 'Bob', 'Carl', 'Chris', 'Ben', 'Lain-lain', 'Tahun'])<br></pra></p>
<p><pra>d = {'A': ['Amy'], 'B': ['Bob', ' Ben'], 'C': ['Carl', 'Chris']}<br>

Bagaimanakah kita membentuk semula kerangka data agar menyerupai struktur berikut, di mana lajur dilebur dan dikumpulkan?

Nama Kumpulan Nilai Tahun
0 A Amy 2013 2
1 A Amy 2014 9
2 B Bob 2013 4
3 B Bob 2014 2
4 B Ben 2013 1
2014 5
6 C Carl 2013 7
7 C Carl 2014 4
8 C Chris 2013 8
9 C Chris 2014 5
10 Lain-lain 2013 3
11 Lain-lain 2014 6

Jawapan:

Untuk membentuk semula kerangka data menggunakan fungsi cair, ikut langkah berikut:

  1. Cairkan bingkai data: Cairkan bingkai data ke dalam format yang luas menggunakan fungsi cair. Ini akan menukar lajur kepada baris, dengan parameter id_vars digunakan untuk menentukan lajur yang harus kekal utuh.

    m = pd.melt(df, id_vars=['Year'], var_name='Name')
    Salin selepas log masuk
  2. Buat kamus pemetaan: Bentuk semula kamus d untuk membuat pemetaan antara nama lajur dan kumpulan nama.

    d2 = {}
    for k, v in d.items():
        for item in v:
            d2[item] = k
    Salin selepas log masuk
  3. Tambah 'Kumpulan': Petakan kamus yang baru dibuat d2 ke lajur 'Nama' untuk menambah lajur 'Kumpulan'.

    m['Group'] = m['Name'].map(d2)
    Salin selepas log masuk
  4. Alih 'Lain': Alihkan nilai 'Lain' dari lajur 'Nama' ke lajur 'Kumpulan'.

    mask = m['Name'] == 'Other'
    m.loc[mask, 'Name'] = ''
    m.loc[mask, 'Group'] = 'Other'
    Salin selepas log masuk

Bingkai data yang terhasil akan mengandungi struktur rata yang diingini:

print(m)

    Year   Name  value Group
0   2013    Amy      2      A
1   2014    Amy      9      A
2   2013    Bob      4      B
3   2014    Bob      2      B
4   2013   Carl      7      C
...    ...    ...    ...    ...
7   2014  Chris      5      C
8   2013    Ben      1      B
9   2014    Ben      5      B
10  2013             3  Other
11  2014             6  Other
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Membentuk Semula Bingkai Data Pandas Menggunakan Fungsi Lebur dan Kamus?. 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