Sebelum menggunakan jadual pangsi panda, pastikan anda memahami data dan soalan yang ingin anda selesaikan melalui jadual pangsi. Dengan menggunakan kaedah ini, anda dapat menghasilkan hasil yang hebat. Kami akan menghuraikan dalam artikel ini, bagaimana membuat pivot table di panda python.
Baca Data dari fail Excel
Kami telah memuat turun pangkalan data excel penjualan makanan. Sebelum memulakan pelaksanaan, anda perlu memasang beberapa pakej yang diperlukan untuk membaca dan menulis fail pangkalan data excel. Ketik perintah berikut di bahagian terminal penyunting pycharm anda:
memasang pip xlwt openpyxl xlsxwriter xlrd
Sekarang, baca data dari lembaran excel. Import perpustakaan panda yang diperlukan dan ubah jalan pangkalan data anda. Kemudian dengan menjalankan kod berikut, data dapat diambil dari fail.
import panda sebagai pdimport numpy sebagai np
dtfrm = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ')
cetak (dtfrm)
Di sini, data dibaca dari pangkalan data penjualan makanan dan dimasukkan ke dalam pemboleh ubah kerangka data.
Buat Jadual Pangsi menggunakan Pandas Python
Di bawah ini kami telah membuat jadual pangsi sederhana dengan menggunakan pangkalan data penjualan makanan. Dua parameter diperlukan untuk membuat jadual pangsi. Yang pertama adalah data yang telah kami sampaikan ke kerangka data, dan yang lainnya adalah indeks.
Pivot Data pada Indeks
Indeks adalah ciri jadual pangsi yang membolehkan anda mengumpulkan data berdasarkan keperluan. Di sini, kami telah mengambil 'Product' sebagai indeks untuk membuat jadual pangsi asas.
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ')
pivot_tble = pd.pivot_table (kerangka data, indeks = ["Produk"])
cetak (pivot_tble)
Hasil berikut menunjukkan setelah menjalankan kod sumber di atas:
Tentukan lajur secara jelas
Untuk lebih banyak analisis data anda, jelaskan nama lajur dengan indeks. Sebagai contoh, kami mahu memaparkan satu-satunya UnitPrice dari setiap produk dalam hasilnya. Untuk tujuan ini, tambahkan parameter nilai dalam jadual pangsi anda. Kod berikut memberi anda hasil yang sama:
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ')
pivot_tble = pd.pivot_table (kerangka data, indeks = 'Produk', nilai = 'UnitPrice')
cetak (pivot_tble)
Pivot Data dengan Multi-indeks
Data dapat dikelompokkan berdasarkan lebih dari satu ciri sebagai indeks. Dengan menggunakan pendekatan multi-indeks, anda boleh mendapatkan hasil yang lebih spesifik untuk analisis data. Sebagai contoh, produk berada dalam kategori yang berbeza. Jadi, anda boleh memaparkan indeks 'Product' dan 'Category' dengan 'Quantity' dan 'UnitPrice' setiap produk seperti berikut:
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ')
pivot_tble = pd.pivot_table (kerangka data, indeks = ["Kategori", "Produk"], nilai = ["UnitPrice", "Quantity"])
cetak (pivot_tble)
Menerapkan Fungsi Pengagregatan dalam jadual Pangsi
Dalam jadual pangsi, aggfunc dapat diterapkan untuk nilai ciri yang berbeza. Jadual yang dihasilkan adalah ringkasan data ciri. Fungsi agregat berlaku untuk data kumpulan anda dalam pivot_table. Secara default fungsi agregat adalah np.bermaksud (). Tetapi, berdasarkan keperluan pengguna, fungsi agregat yang berbeza dapat berlaku untuk ciri data yang berbeza.
Contoh:
Kami telah menggunakan fungsi agregat dalam contoh ini. The np.fungsi sum () digunakan untuk ciri 'Quantity' dan np.mean () fungsi untuk ciri 'UnitPrice'.
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ')
pivot_tble = pd.pivot_table (kerangka data, indeks = ["Kategori", "Produk"], aggfunc = 'Kuantiti': np.jumlah, 'UnitPrice': np.bermaksud)
cetak (pivot_tble)
Setelah menerapkan fungsi agregasi untuk pelbagai ciri, anda akan mendapat output berikut:
Dengan menggunakan parameter nilai, Anda juga dapat menerapkan fungsi agregat untuk fitur tertentu. Sekiranya anda tidak akan menentukan nilai ciri, ia menggabungkan ciri berangka pangkalan data anda. Dengan mengikuti kod sumber yang diberikan, anda dapat menerapkan fungsi agregat untuk fitur tertentu:
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ')
pivot_tble = pd.pivot_table (kerangka data, indeks = ['Produk'], nilai = ['UnitPrice'], aggfunc = np.bermaksud)
cetak (pivot_tble)
Berbeza antara Nilai vs. Lajur dalam Jadual Pangsi
Nilai dan lajur adalah titik membingungkan utama dalam pivot_table. Penting untuk diperhatikan bahawa lajur adalah medan pilihan, yang menunjukkan nilai-nilai jadual yang dihasilkan secara mendatar di bahagian atas. Fungsi agregasi aggfunc berlaku untuk medan nilai yang anda senaraikan.
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Category', 'Product', 'City'], nilai = ['UnitPrice', 'Quantity'],
lajur = ['Wilayah'], aggfunc = [np.jumlah])
cetak (pivot_tble)
Mengendalikan Data yang Hilang dalam Jadual Pangsi
Anda juga boleh mengatasi nilai yang hilang dalam jadual Pivot dengan menggunakan 'isi_nilai' Parameter. Ini membolehkan anda mengganti nilai NaN dengan beberapa nilai baru yang anda sediakan untuk diisi.
Sebagai contoh, kami membuang semua nilai nol dari jadual hasil di atas dengan menjalankan kod berikut dan menggantikan nilai NaN dengan 0 di keseluruhan jadual hasil.
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Category', 'Product', 'City'], nilai = ['UnitPrice', 'Quantity'],
lajur = ['Wilayah'], aggfunc = [np.jumlah], fill_value = 0)
cetak (pivot_tble)
Penapisan dalam Jadual Pangsi
Setelah hasilnya dihasilkan, anda dapat menerapkan penapis dengan menggunakan fungsi kerangka data standard. Mari kita ambil contoh. Tapis produk yang UnitPrice kurang dari 60. Ia memaparkan produk yang harganya kurang dari 60.
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (kerangka data, indeks = 'Produk', nilai = 'UnitPrice', aggfunc = 'sum')
low_price = pivot_tble [pivot_tble ['UnitPrice']] < 60]
cetak (harga rendah)
Dengan menggunakan kaedah pertanyaan lain, anda dapat menyaring hasil. Sebagai contoh, Sebagai contoh, kami telah menapis kategori kuki berdasarkan ciri berikut:
import panda sebagai pdimport numpy sebagai np
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["Category", "City", "Region"], nilai = ["UnitPrice", "Quantity"], aggfunc = np.jumlah)
pt = pangsi_tabel.pertanyaan ('Category == ["Cookies"]')
mencetak (pt)
Pengeluaran:
Visualisasikan Data Jadual Pangsi
Untuk memvisualisasikan data jadual pangsi, ikuti kaedah berikut:
import panda sebagai pdimport numpy sebagai np
import matplotlib.pyplot sebagai plt
kerangka data = pd.read_excel ('C: / Pengguna / DELL / Desktop / foodalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (kerangka data, indeks = ["Kategori", "Produk"], nilai = ["UnitPrice"])
pangsi_tabel.plot (jenis = 'bar');
plt.tunjuk ()
Dalam visualisasi di atas, kami telah menunjukkan harga seunit bagi pelbagai produk dan kategori.
Kesimpulannya
Kami meneroka bagaimana anda dapat menghasilkan jadual pangsi dari kerangka data menggunakan Pandas python. Jadual pangsi membolehkan anda menghasilkan pandangan mendalam mengenai set data anda. Kami telah melihat bagaimana menghasilkan jadual pangsi sederhana menggunakan multi-indeks dan menerapkan penapis pada jadual pangsi. Selain itu, kami juga telah menunjukkan plot data pivot table dan mengisi data yang hilang.