Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Pivot Dataframe dalam Pandas?

Bagaimana untuk Pivot Dataframe dalam Pandas?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-12 19:27:02780semak imbas

How to Pivot a Dataframe in Pandas?

Pivot Bingkai Data dalam Panda

Untuk memutar bingkai data dalam Pandas, anda boleh menggunakan kaedah .pivot. Kaedah ini mengambil nilai yang ditentukan sebagai lajur dan menyusun semula bingkai data dengan sewajarnya.

Andaikan anda mempunyai bingkai data dengan lajur Penunjuk, Negara, Tahun dan Nilai. Untuk menukar jadual supaya nilai dalam lajur Penunjuk menjadi lajur baharu, gunakan kod berikut:

out = df.pivot(index=['Country', 'Year'], columns='Indicator', values='Value')
print(out)

Output yang terhasil ialah:

Indicator     1   2   3   4  5
Country Year
Angola  2005  6  13  10  11  5
        2006  3   2   7   3  6

Untuk menukar pivoted bingkai data kembali ke jadual rata, anda boleh menggunakan .rename_axis untuk mengalih keluar lajur Penunjuk dan .reset_index untuk mengembalikan Negara dan Tahun kepada lajur biasa:

print(out.rename_axis(columns=None).reset_index())

Outputnya ialah:

  Country  Year  1   2   3   4  5
0  Angola  2005  6  13  10  11  5
1  Angola  2006  3   2   7   3  6

Jika data anda mempunyai gabungan pendua label (cth. Negara, Tahun, Penunjuk), anda boleh menggunakan .pivot_table. Secara lalai, ia mengambil purata nilai berulang:

out = df.pivot_table(
    index=['Country', 'Year'],
    columns='Indicator',
    values='Value')
print(out.rename_axis(columns=None).reset_index())

Outputnya ialah:

  Country  Year    1     2     3     4    5
0  Angola  2005  6.0  13.0  10.0  11.0  5.0
1  Angola  2006  3.0   2.0   7.0   3.0  6.0

Untuk mendapatkan maklumat lanjut tentang membentuk semula dan jadual pangsi dalam Pandas, rujuk panduan pengguna .

Atas ialah kandungan terperinci Bagaimana untuk Pivot Dataframe dalam Pandas?. 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