Cara menyembunyikan kolom di excel menggunakan python

Menggunakan paket openpyxl untuk mengabaikan baris dan kolom tersembunyi saat membaca file Excel sebagai Pandas DataFrames

Foto oleh Mika Baumeister di Unsplash

Saya mempelajari sesuatu yang baru baru-baru ini — bahwa mungkin untuk mengecualikan baris dan/atau kolom tersembunyi saat membaca file Excel sebagai Pandas DataFrames, semuanya berkat paket openpyxl, dan saya ingin membaginya dengan Anda

Tidak jarang baris atau kolom file Excel disembunyikan. Kolom yang kurang relevan mungkin disembunyikan untuk membuat spreadsheet lebih rapi;

Apa pun alasannya, menyembunyikannya saat memuat file sebagai Pandas DataFrame mungkin bermanfaat, karena dapat memengaruhi perselisihan dan eksplorasi data selanjutnya

Sayangnya, cara tradisional membaca file Excel sebagai Pandas DataFrames — menggunakan metode pandas.read_excel() — tidak memfasilitasi itu

Dalam posting ini, kami akan mengeksplorasi bagaimana kami dapat mengidentifikasi baris dan kolom tersembunyi dari file Excel menggunakan paket openpyxl dan karenanya mengecualikannya saat memuatnya sebagai Pandas DataFrame

Kumpulan data

Kami akan menggunakan sebagian kecil dari kumpulan data pelatihan titanic yang tersedia untuk umum di Kaggle. Untuk kesederhanaan, saya membatasi jumlah baris data menjadi 20. Saya juga sengaja menyembunyikan Kolom F ("Umur"), I ("Tiket") dan K ("Kabin"), serta Baris 6, 11, 16, dan 21

Pratinjau kumpulan data di Excel (Gambar oleh Penulis)Mengapa `pandas. read_excel()` tidak berfungsi?

Biasanya, kami menggunakan metode

>>> pip install openpyxl
_1 Pandas untuk memuat dataset di Excel sebagai Pandas DataFrame. Mari kita lihat apa yang terjadi ketika kita melakukan itu untuk kumpulan data titanic kita yang berisi baris dan kolom tersembunyi

>>> import pandas as pd>>> df = pd.read_excel("data/titanic.xlsx")>>> df
_

Dataset sebagai Pandas DataFrame dengan semua baris dan kolom (Gambar oleh Penulis)

Secara default, metode

>>> pip install openpyxl
_1 membaca data dari semua baris dan kolom dari file Excel yang ditentukan. Dengan kata lain, itu tidak mengecualikan baris dan kolom yang tersembunyi

Instalasi openpyxl

Untuk memuat sebagai Pandas DataFrames tanpa baris dan kolom tersembunyi, kita dapat menggunakan paket openpyxl, pustaka Python untuk "membaca/menulis file xlsx/xlsm/xltx/xltm Excel 2010"

Karena openpyxl bukan pustaka bawaan Python standar, Anda harus menginstalnya terlebih dahulu. Buka jendela baris perintah dan ketik perintah berikut

>>> pip install openpyxl
Memuat file Excel dan lembar kerja menggunakan openpyxl

Untuk membuka file Excel yang ada menggunakan paket openpyxl, kami menggunakan metode

>>> pip install openpyxl
4, dengan menentukan nama jalur tempat file Excel disimpan

>>> import openpyxl# Open an Excel workbook
>>> workbook = openpyxl.load_workbook("data/titanic.xlsx")

Ini membuat objek

>>> pip install openpyxl
5 yang, menurut dokumentasi, adalah "wadah tingkat atas untuk semua informasi dokumen". Objek ini berisi banyak atribut yang berkaitan dengan file input, termasuk atribut
>>> pip install openpyxl
6 yang mengembalikan daftar nama semua lembar kerja di buku kerja

# Create a list of names of all worksheets in `workbook`
>>> sheet_names = workbook.sheetnames
# Create a `Worksheet` object
>>> worksheet = workbook[sheet_names[0]]
_

Dalam file

>>> pip install openpyxl
_7 kami, kami hanya memiliki satu lembar kerja bernama "train", jadi kami mendapatkan nama sheet dengan mengambil elemen pertama dari daftar
>>> pip install openpyxl
8. Selanjutnya, kita membuat objek
>>> pip install openpyxl
_9 dari objek
>>> pip install openpyxl
5

Menemukan indeks baris tersembunyi

Demikian pula, objek

>>> pip install openpyxl
_9 berisi atribut yang berkaitan dengan lembar kerja yang ditentukan. Untuk menemukan indeks dari semua baris tersembunyi, kami menggunakan atribut
>>> import openpyxl# Open an Excel workbook
>>> workbook = openpyxl.load_workbook("data/titanic.xlsx")
2 dari objek
>>> pip install openpyxl
9, seperti ini

# List of indices corresponding to all hidden rows
>>> hidden_rows_idx = [
row - 2
for row, dimension in worksheet.row_dimensions.items()
if dimension.hidden
]
>>> print(hidden_rows_idx)[4, 9, 14, 19]

Perhatikan bahwa kita perlu mengambil

>>> import openpyxl# Open an Excel workbook
>>> workbook = openpyxl.load_workbook("data/titanic.xlsx")
_4 alih-alih hanya
>>> import openpyxl# Open an Excel workbook
>>> workbook = openpyxl.load_workbook("data/titanic.xlsx")
5 karena kita ingin menemukan indeks yang sesuai dengan Pandas DataFrame, bukan file Excel

Menemukan nama kolom tersembunyi

Untuk menemukan nama semua kolom tersembunyi, pertama-tama kita menggunakan atribut

>>> import openpyxl# Open an Excel workbook
>>> workbook = openpyxl.load_workbook("data/titanic.xlsx")
6 dari objek
>>> pip install openpyxl
9

# List of indices corresponding to all hidden columns
>>> hidden_cols = [
col
for col, dimension in worksheet.column_dimensions.items()
if dimension.hidden
]
>>> print(hidden_cols)['F', 'I', 'K']

Ini menghasilkan daftar yang terdiri dari huruf besar yang sesuai dengan kolom tersembunyi dari lembar kerja Excel. Jadi, kita perlu mengonversi daftar

>>> import openpyxl# Open an Excel workbook
>>> workbook = openpyxl.load_workbook("data/titanic.xlsx")
8 menjadi daftar nama kolom tersembunyi. Untuk melakukannya, kami menggunakan pustaka bawaan Python,
>>> import openpyxl# Open an Excel workbook
>>> workbook = openpyxl.load_workbook("data/titanic.xlsx")
9, dan atribut
# Create a list of names of all worksheets in `workbook`
>>> sheet_names = workbook.sheetnames
# Create a `Worksheet` object
>>> worksheet = workbook[sheet_names[0]]
0

# List of indices corresponding to all hidden columns
>>> hidden_cols_idx = [
string.ascii_uppercase.index(col_name)
for col_name in hidden_cols
]
# Find names of columns corresponding to hidden column indices
>>> hidden_cols_name = df.columns[hidden_cols_idx].tolist()
>>> print(hidden_cols_name)['Age', 'Ticket', 'Cabin']

Penafian. Perhatikan bahwa menggunakan

# Create a list of names of all worksheets in `workbook`
>>> sheet_names = workbook.sheetnames
# Create a `Worksheet` object
>>> worksheet = workbook[sheet_names[0]]
_1 mengasumsikan bahwa paling banyak ada 26 kolom. Jika ada lebih dari 26 kolom, kode perlu diubah

Terakhir, setelah kita memiliki indeks untuk baris tersembunyi dan nama untuk kolom tersembunyi, sisanya sederhana. Untuk mengecualikan baris dan kolom tersembunyi tersebut, kami cukup menggunakan metode

# Create a list of names of all worksheets in `workbook`
>>> sheet_names = workbook.sheetnames
# Create a `Worksheet` object
>>> worksheet = workbook[sheet_names[0]]
2 Pandas

# Drop the hidden columns
>>> df.drop(hidden_cols_name, axis=1, inplace=True)
# Drop the hidden rows
>>> df.drop(hidden_rows_idx, axis=0, inplace=True)
# Reset the index
>>> df.reset_index(drop=True, inplace=True)
>>> df

Dataset sebagai Pandas DataFrame tanpa baris dan kolom tersembunyi (Gambar oleh Penulis) Menyatukan semuanya

Berikut cuplikan kode yang menyatukan kode-kode di atas dengan beberapa pemfaktoran ulang sederhana

Membungkusnya

Jadi, begitulah — kode Python yang memungkinkan Anda membaca file Excel yang berisi baris dan/atau kolom tersembunyi sebagaimana adanya, seperti Pandas DataFrames

Kasus penggunaan khusus ini hanya menggores permukaan dari apa yang ditawarkan paket openpyxl. Untuk informasi lebih lanjut tentang paket openpyxl, lihat dokumentasinya di sini

Kode yang ditampilkan di postingan ini juga dapat ditemukan sebagai notebook di repo GitHub ini

Halo. Saya Zeya. Terima kasih telah membaca postingan ini. Jika Anda merasa ini berguna, beri tahu saya di komentar. Saya juga menerima diskusi, pertanyaan, dan umpan balik yang konstruktif. Jangan ragu untuk mengikuti saya di Medium atau hubungi saya melalui LinkedIn atau Twitter. Semoga hari mu menyenangkan

Bagaimana Anda menyembunyikan kolom dengan Python?

Developer dapat menyembunyikan baris atau kolom dengan memanggil metode HideRow dan HideColumn dari kumpulan Cells secara berurutan. Kedua metode menggunakan indeks baris/kolom sebagai parameter untuk menyembunyikan baris atau kolom tertentu.

Bagaimana cara menyembunyikan kolom data di Excel?

Sembunyikan kolom .
Pilih satu atau beberapa kolom, lalu tekan Ctrl untuk memilih kolom tambahan yang tidak berdekatan
Klik kanan kolom yang dipilih, lalu pilih Sembunyikan

Bagaimana cara menyembunyikan kolom berdasarkan nilai?

Jika Anda ingin menyembunyikan kolom berdasarkan nilai sel di Excel, ada beberapa cara untuk melakukannya. Salah satu caranya adalah dengan menggunakan fitur pemformatan bersyarat . Ini akan memungkinkan Anda untuk membuat aturan yang akan menyembunyikan kolom jika nilai sel memenuhi kriteria tertentu. Cara lain adalah dengan menggunakan makro.

Bagaimana cara membuat satu kolom hanya bisa dibaca di Excel dengan Python?

Baca data kolom mana saja di excel .
buat lembar Excel dengan header bernama Header1, Header2, Header1, Header2 di bawah kolom A, B, C, D
df. read_excel(namafile, usecols='C. D')