cari
Rumahpembangunan bahagian belakangTutorial PythonBagaimanakah saya boleh Pivot Pandas DataFrame dalam Python?

How Can I Pivot a Pandas DataFrame in Python?

Bagaimanakah saya boleh memaksi kerangka data?

Apakah itu pangsi?

Pengasian ialah satu teknik transformasi data yang digunakan untuk membentuk semula DataFrame dengan menukar baris dan lajur. Ia biasanya digunakan untuk menyusun data dengan cara yang memudahkan untuk menganalisis atau memvisualisasikan.

Bagaimanakah saya boleh berputar?

Terdapat beberapa cara untuk memutarkan DataFrame dalam Python menggunakan pustaka Pandas:

1. pd.DataFrame.pivot_table:

Kaedah ini ialah pilihan yang serba boleh dan kaya dengan ciri untuk memutar data. Ia membolehkan anda menentukan nilai yang hendak diagregatkan, fungsi pengagregatan dan indeks baris dan lajur.

Contoh:

import pandas as pd

# Create a sample DataFrame
df = pd.DataFrame({
    "row": ["row0", "row1", "row2", "row3", "row4"],
    "col": ["col0", "col1", "col2", "col3", "col4"],
    "val0": [0.81, 0.44, 0.77, 0.15, 0.81],
    "val1": [0.04, 0.07, 0.01, 0.59, 0.64]
})

# Pivot the DataFrame using pivot_table
df_pivoted = df.pivot_table(
    index="row",
    columns="col",
    values="val0",
    aggfunc="mean",
)

print(df_pivoted)

# Output:
     col0   col1   col2   col3   col4
row                                  
row0  0.77  0.445  0.000  0.860  0.650
row1  0.130  0.000  0.395  0.500  0.250
row2  0.000  0.310  0.000  0.545  0.000
row3  0.000  0.100  0.395  0.760  0.240
row4  0.000  0.000  0.000  0.000  0.000

2. pd.DataFrame.groupby pd.DataFrame.unstack:

Kaedah ini melibatkan pengumpulan DataFrame mengikut indeks baris dan lajur yang dikehendaki, kemudian menggunakan unstack untuk memutar data terkumpul.

Contoh:

# Group the DataFrame by row and col
df_grouped = df.groupby(["row", "col"])

# Perform pivot using unstack
df_pivoted = df_grouped["val0"].unstack(fill_value=0)

print(df_pivoted)

# Output:
col   col0   col1   col2   col3   col4
row                                  
row0  0.81  0.445  0.000  0.860  0.650
row1  0.130  0.000  0.395  0.500  0.250
row2  0.000  0.310  0.000  0.545  0.000
row3  0.000  0.100  0.395  0.760  0.240
row4  0.000  0.000  0.000  0.000  0.000

3. pd.DataFrame.set_index pd.DataFrame.unstack:

Kaedah ini melibatkan penetapan indeks baris dan lajur yang diingini sebagai indeks DataFrame, dan kemudian menggunakan unstack untuk memutar data.

Contoh:

# Set the row and col as the DataFrame's index
df = df.set_index(["row", "col"])

# Perform pivot using unstack
df_pivoted = df["val0"].unstack(fill_value=0)

print(df_pivoted)

# Output:
col   col0   col1   col2   col3   col4
row                                  
row0  0.81  0.445  0.000  0.860  0.650
row1  0.130  0.000  0.395  0.500  0.250
row2  0.000  0.310  0.000  0.545  0.000
row3  0.000  0.100  0.395  0.760  0.240
row4  0.000  0.000  0.000  0.000  0.000

4. pd.DataFrame.pivot:

Kaedah ini menawarkan sintaks yang lebih mudah berbanding pivot_table, tetapi ia mempunyai fungsi terhad. Ia hanya membenarkan anda untuk menentukan indeks baris dan lajur, dan ia tidak boleh melakukan pengagregatan.

Contoh:

# Perform pivot using pivot
df_pivoted = df.pivot(index="row", columns="col")

print(df_pivoted)

# Output:
col   col0   col1   col2   col3   col4
row                                  
row0  key0  0.81  0.44  0.00  0.86  0.65
row1  key1  0.13  0.00  0.39  0.50  0.25
row2  key1  0.00  0.31  0.00  0.54  0.00
row3  key0  0.00  0.10  0.39  0.76  0.24
row4  key1  0.00  0.00  0.00  0.00  0.00

Format panjang kepada format lebar

Untuk menukar DataFrame daripada format panjang kepada format lebar menggunakan hanya dua lajur:

1. pd.DataFrame.pivot(index=column_to_index, columns=column_to_columns, values=values_to_pivot**):

Contoh:

df["Combined"] = df["row"] + "|" + df["col"]
df_pivoted = df.pivot(index="Combined", columns="A", values="B")

print(df_pivoted)

# Output:
A         a     b    c
Combined
row0|col0  0.0  10.0  7.0
row1|col1  11.0  10.0  NaN
row2|col2  2.0  14.0  NaN
row3|col3  11.0   NaN  NaN
row4|col4   NaN   NaN  NaN

2. pd.DataFrame.groupby pd.DataFrame.unstack:

df["Combined"] = df["row"] + "|" + df["col"]
df_grouped = df.groupby(["Combined", "A"])
df_pivoted = df_grouped["B"].unstack(fill_value=0)

print(df_pivoted)

# Output:
A         a     b    c
Combined
row0|col0  0.0  10.0  7.0
row1|col1  11.0  10.0  NaN
row2|col2  2.0  14.0  NaN
row3|col3  11.0   NaN  NaN
row4|col4   NaN   NaN  NaN

Leperkan indeks berganda kepada satu indeks selepas pivot:

df_pivoted.columns = df_pivoted.columns.map("|".join)

print(df_pivoted)

# Output:
   a|col0  b|col0  c|col0  a|col1  b|col1  c|col1  a|col2  b|col2  c|col2  a|col3  b|col3  c|col3
row                                                                                        
row0    0.0   10.0    7.0   11.0   10.0    NaN    2.0   14.0    NaN    11.0    NaN    NaN
row1    0.0   10.0    7.0   11.0   10.0    NaN    2.0   14.0    NaN    11.0    NaN    NaN

Atas ialah kandungan terperinci Bagaimanakah saya boleh Pivot Pandas DataFrame dalam Python?. 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
Apakah jenis data yang boleh disimpan dalam array python?Apakah jenis data yang boleh disimpan dalam array python?Apr 27, 2025 am 12:11 AM

Pythonlistscanstoreanydatatype, arraymoduleArraysstoreonetype, andnumpyarraysarefornumumericalcomputations.1) listsareversatileButlessMememory-efficient.2) arraymoduleArduleArrayRaysarememory-efficientforhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogen

Apa yang berlaku jika anda cuba menyimpan nilai jenis data yang salah dalam array python?Apa yang berlaku jika anda cuba menyimpan nilai jenis data yang salah dalam array python?Apr 27, 2025 am 12:10 AM

KetikayyoUttemptToStoreAveFheWrongatatypeinapythonArray, anda akan menjadicounteratypeerror

Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array?Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array?Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary, sementara

Apa yang perlu anda periksa jika skrip dijalankan dengan versi Python yang salah?Apa yang perlu anda periksa jika skrip dijalankan dengan versi Python yang salah?Apr 27, 2025 am 12:01 AM

Thescriptisrunningwiththewrongpythonversionduetoincorrectdefault interpretsettings

Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apr 26, 2025 am 12:22 AM

PythonArraysSupportVariousoperations: 1) SlicingExtractsSubsets, 2) Menambah/ExtendingAddSelements, 3) InsertingPlaceSelementSatSatSatSpecifics, 4) RemovingDeleteselements, 5) Sorting/ReversingChangesOrder,

Dalam jenis aplikasi yang biasa digunakan oleh numpy?Dalam jenis aplikasi yang biasa digunakan oleh numpy?Apr 26, 2025 am 12:13 AM

NumpyarraysareessentialforapplicationRequiringeficientnumericalcomputationsanddatamanipulation.theyarecrucialindaSascience, machinelearning, fizik, kejuruteraan, danfinanceduetotheirabilitytOHandlelarge-Scaledataefisien.Forexample, infinancialanal

Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Apr 26, 2025 am 12:12 AM

UseanArray.arrayoveralistinpythonwhendealingwithhomogeneousdata, criticalcode prestasi, orinterfacingwithccode.1) homogeneousdata: arrayssavemememorywithtypedelements.2)

Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Apr 26, 2025 am 12:05 AM

Tidak, notalllistoperationsaresuportedByArrays, andviceversa.1) arraysdonotsupportdynamicoperationslikeappendorinsertwithoutresizing, whyimpactsperformance.2) listsdonotguaranteeconstantTimeComplexityFordirectacesscesscesscesscesscesscesscesscesscesessd.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan