Bagaimana cara mengimpor data excel ke python?

Pada artikel ini, kami akan membahas fitur utama Python dan SQL, persamaan dan perbedaan utamanya, dan mana yang harus Anda pilih terlebih dahulu untuk memulai perjalanan ilmu data Anda

Javier Canales Luna

12 menit

DataFramed 120 .png

Tren & Prediksi Data Tahun 2023

Co-founder DataCamp, Jonathan Cornelissen, dan Martijn Theuwissen memecah tren data teratas yang mereka lihat di ruang data saat ini, serta prediksi mereka untuk masa depan industri data

Data Teks Dalam Lembar Cheat Python

Selamat datang di lembar contekan kami untuk bekerja dengan data teks dengan Python. Kami telah menyusun daftar fungsi dan paket yang paling berguna untuk membersihkan, memproses, dan menganalisis data teks dengan Python, bersama dengan contoh dan penjelasan yang jelas, sehingga Anda akan memiliki semua yang perlu Anda ketahui tentang bekerja dengan data teks dalam Python.

Mendukung ekstensi file xls, xlsx, xlsm, xlsb, odf, ods dan odt yang dibaca dari sistem file atau URL lokal. Mendukung opsi untuk membaca satu lembar atau daftar lembar

Parametersio str, byte, ExcelFile, xlrd. Pesan, objek jalur, atau objek seperti file

Setiap jalur string yang valid dapat diterima. String bisa berupa URL. Skema URL yang valid termasuk http, ftp, s3, dan file. Untuk URL file, host diharapkan. File lokal bisa jadi. file://localhost/path/to/table.xlsx

Jika Anda ingin meneruskan objek jalur, panda menerima os.PathLike apa pun

Dengan objek seperti file, kami merujuk ke objek dengan metode read(), seperti pegangan file (e. g. melalui fungsi _______ 38 _______ bawaan) atau

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
0

sheet_name str, int, list, atau None, default 0

String digunakan untuk nama sheet. Bilangan bulat digunakan dalam posisi lembar terindeks nol (lembar bagan tidak dihitung sebagai posisi lembar). Daftar string/bilangan bulat digunakan untuk meminta beberapa lembar. Tentukan Tidak Ada untuk mendapatkan semua lembar kerja

Kasus yang tersedia

  • Default ke

    >>> pd.read_excel(open('tmp.xlsx', 'rb'),
    ..               sheet_name='Sheet3')  
       Unnamed: 0      Name  Value
    0           0   string1      1
    1           1   string2      2
    2           2  #Comment      3
    
    1. Lembar pertama sebagai DataFrame

  • >>> pd.read_excel(open('tmp.xlsx', 'rb'),
    ..               sheet_name='Sheet3')  
       Unnamed: 0      Name  Value
    0           0   string1      1
    1           1   string2      2
    2           2  #Comment      3
    
    _2. lembar ke-2 sebagai DataFrame

  • >>> pd.read_excel(open('tmp.xlsx', 'rb'),
    ..               sheet_name='Sheet3')  
       Unnamed: 0      Name  Value
    0           0   string1      1
    1           1   string2      2
    2           2  #Comment      3
    
    _3. Muat sheet dengan nama “Sheet1”

  • >>> pd.read_excel(open('tmp.xlsx', 'rb'),
    ..               sheet_name='Sheet3')  
       Unnamed: 0      Name  Value
    0           0   string1      1
    1           1   string2      2
    2           2  #Comment      3
    
    _4. Muat pertama, kedua, dan lembar bernama "Sheet5" sebagai dikt dari DataFrame

  • Tidak ada. Semua lembar kerja

header int, daftar int, default 0

Baris (0-diindeks) yang akan digunakan untuk label kolom dari DataFrame yang diurai. Jika daftar bilangan bulat dilewatkan, posisi baris tersebut akan digabungkan menjadi

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
5. Gunakan Tidak Ada jika tidak ada tajuk

nama seperti array, default Tidak Ada

Daftar nama kolom yang akan digunakan. Jika file tidak berisi baris header, maka Anda harus secara eksplisit meneruskan header=None

index_col int, daftar int, default Tidak ada

Kolom (0-diindeks) untuk digunakan sebagai label baris DataFrame. Lulus Tidak Ada jika tidak ada kolom seperti itu. Jika daftar dilewatkan, kolom tersebut akan digabungkan menjadi

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
5. Jika subset data dipilih dengan
>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
7, index_col didasarkan pada subset

Nilai yang hilang akan diisi ke depan untuk memungkinkan bolak-balik dengan

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
8 untuk
>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
9. Untuk menghindari meneruskan pengisian nilai yang hilang, gunakan
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
0 setelah membaca data alih-alih
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
1

usecols str, seperti daftar, atau dapat dipanggil, default Tidak ada
  • Jika Tidak Ada, parsing semua kolom

  • Jika str, maka tunjukkan daftar huruf kolom Excel dan rentang kolom yang dipisahkan koma (mis. g. "SEBUAH. E” atau “A,C,E. F"). Rentang sudah termasuk dari kedua sisi

  • Jika daftar int, maka tunjukkan daftar nomor kolom yang akan diuraikan (0-diindeks)

  • Jika daftar string, maka menunjukkan daftar nama kolom yang akan diuraikan

  • Jika dapat dipanggil, maka evaluasi setiap nama kolom terhadapnya dan parsing kolom jika yang dapat dipanggil mengembalikan

    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    2

Mengembalikan subset kolom sesuai dengan perilaku di atas

remas bool, default Salah

Jika data yang diurai hanya berisi satu kolom, maka kembalikan Seri

Tidak digunakan lagi sejak versi 1. 4. 0. Tambahkan

>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
3 ke panggilan ke
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
4 untuk memeras data.

dtype Ketik nama atau dict kolom -> ketik, default Tidak ada

Tipe data untuk data atau kolom. e. g. {'sebuah'. np. float64, 'b'. np. int32} Gunakan objek untuk menyimpan data seperti yang disimpan di Excel dan tidak menginterpretasikan dtype. Jika konverter ditentukan, mereka akan diterapkan BUKAN konversi dtype

mesin str, bawaan Tidak ada

Jika io bukan buffer atau jalur, ini harus disetel untuk mengidentifikasi io. Mesin yang didukung. "xlrd", "openpyxl", "odf", "pyxlsb". Kompatibilitas mesin

  • "xlrd" mendukung file Excel gaya lama (. xls)

  • "openpyxl" mendukung format file Excel yang lebih baru

  • "odf" mendukung format file OpenDocument (. odf,. ods,. odt)

  • "pyxlsb" mendukung file Biner Excel

Berubah pada versi 1. 2. 0. Mesin xlrd sekarang hanya mendukung file

>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
5 gaya lama. Saat
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
_6, logika berikut akan digunakan untuk menentukan mesin.

  • Jika

    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    _7 adalah format OpenDocument (. odf,. ods,. odt), maka odf akan digunakan

  • Sebaliknya jika

    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    _7 adalah format xls,
    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    9 akan digunakan

  • Jika tidak, jika

    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    _7 dalam format xlsb,
    >>> pd.read_excel('tmp.xlsx', index_col=0,
    ..               dtype={'Name': str, 'Value': float})  
           Name  Value
    0   string1    1.0
    1   string2    2.0
    2  #Comment    3.0
    
    1 akan digunakan

    Baru di versi 1. 3. 0

  • Jika tidak,

    >>> pd.read_excel('tmp.xlsx', index_col=0,
    ..               dtype={'Name': str, 'Value': float})  
           Name  Value
    0   string1    1.0
    1   string2    2.0
    2  #Comment    3.0
    
    _2 akan digunakan

    Berubah di versi 1. 3. 0

konverter dict, default Tidak ada

Dict fungsi untuk mengonversi nilai di kolom tertentu. Kunci dapat berupa bilangan bulat atau label kolom, nilai adalah fungsi yang mengambil satu argumen masukan, konten sel Excel, dan mengembalikan konten yang diubah

true_values daftar, default Tidak ada

Nilai untuk dipertimbangkan sebagai Benar

false_values daftar, default Tidak ada

Nilai yang dianggap Salah

lewati seperti daftar, int, atau dapat dipanggil, opsional

Nomor baris yang akan dilewati (0-diindeks) atau jumlah baris yang akan dilewati (int) di awal file. Jika dapat dipanggil, fungsi yang dapat dipanggil akan dievaluasi terhadap indeks baris, mengembalikan True jika baris harus dilewati dan False jika sebaliknya. Contoh argumen callable yang valid adalah

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
3

nrows int, default Tidak Ada

Jumlah baris untuk diuraikan

na_values scalar, str, list-like, atau dict, default Tidak ada

Additional strings to recognize as NA/NaN. If dict passed, specific per-column NA values. By default the following values are interpreted as NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’.

keep_default_na bool, default Benar

Apakah akan menyertakan nilai NaN default saat mengurai data atau tidak. Bergantung pada apakah na_values ​​diteruskan, perilakunya adalah sebagai berikut

  • Jika keep_default_na adalah True, dan na_values ​​ditentukan, na_values ​​ditambahkan ke nilai NaN default yang digunakan untuk parsing

  • Jika keep_default_na adalah True, dan na_values ​​tidak ditentukan, hanya nilai NaN default yang digunakan untuk parsing

  • Jika keep_default_na adalah False, dan na_values ​​ditentukan, hanya nilai NaN yang ditentukan na_values ​​yang digunakan untuk parsing

  • Jika keep_default_na adalah False, dan na_values ​​tidak ditentukan, tidak ada string yang akan diuraikan sebagai NaN

Perhatikan bahwa jika na_filter diteruskan sebagai False, parameter keep_default_na dan na_values ​​akan diabaikan

na_filter bool, default True

Mendeteksi penanda nilai yang hilang (string kosong dan nilai na_values). Dalam data tanpa NAS apa pun, meneruskan na_filter=False dapat meningkatkan kinerja membaca file besar

bertele-tele bool, default Salah

Tunjukkan jumlah nilai NA yang ditempatkan di kolom non-numerik

parse_dates bool, seperti daftar, atau dict, default Salah

Tingkah lakunya adalah sebagai berikut

  • bool. Jika Benar -> coba parsing file index

  • daftar int atau nama. e. g. Jika [1, 2, 3] -> coba parsing kolom 1, 2, 3 masing-masing sebagai kolom tanggal terpisah

  • daftar daftar. e. g. Jika [[1, 3]] -> gabungkan kolom 1 dan 3 dan parsing sebagai kolom tanggal tunggal

  • dikt, e. g. {'foo'. [1, 3]} -> mengurai kolom 1, 3 sebagai tanggal dan memanggil hasil 'foo'

Jika kolom atau indeks berisi tanggal yang tidak dapat diuraikan, seluruh kolom atau indeks akan dikembalikan tanpa diubah sebagai tipe data objek. Jika Anda tidak ingin mengurai beberapa sel sebagai tanggal, cukup ubah jenisnya di Excel menjadi "Teks". Untuk penguraian waktu non-standar, gunakan

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
4 setelah
>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
5

Catatan. Ada jalur cepat untuk tanggal berformat iso8601

date_parser fungsi, opsional

Fungsi yang akan digunakan untuk mengonversi urutan kolom string menjadi larik instance datetime. Standarnya menggunakan

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
_6 untuk melakukan konversi. Panda akan mencoba memanggil date_parser dalam tiga cara berbeda, maju ke cara berikutnya jika terjadi pengecualian. 1) Lewati satu atau lebih array (sebagaimana didefinisikan oleh parse_dates) sebagai argumen;

ribuan str, default Tidak ada

Pemisah ribuan untuk mem-parsing kolom string ke numerik. Perhatikan bahwa parameter ini hanya diperlukan untuk kolom yang disimpan sebagai TEXT di Excel, kolom numerik apa pun akan diuraikan secara otomatis, terlepas dari format tampilan

desimal str, default ‘. ’

Karakter untuk dikenali sebagai titik desimal untuk mem-parsing kolom string menjadi numerik. Perhatikan bahwa parameter ini hanya diperlukan untuk kolom yang disimpan sebagai TEXT di Excel, kolom numerik apa pun akan diuraikan secara otomatis, terlepas dari format tampilan. (mis. g. gunakan ',' untuk data Eropa)

Baru di versi 1. 4. 0

komentar str, default Tidak ada

Komentari sisa baris. Berikan satu atau beberapa karakter ke argumen ini untuk menunjukkan komentar di file input. Setiap data antara string komentar dan akhir baris saat ini diabaikan

skipfooter int, default 0

Baris di akhir untuk dilewati (0-diindeks)

convert_float bool, default True

Mengkonversi float integral ke int (i. e. , 1. 0 –> 1). Jika Salah, semua data numerik akan dibaca sebagai pelampung. Excel menyimpan semua angka sebagai float secara internal

Tidak digunakan lagi sejak versi 1. 3. 0. convert_float akan dihapus di versi mendatang

mangle_dupe_cols bool, bawaan Benar

Kolom duplikat akan ditentukan sebagai 'X', 'X. 1’, …’X. N', bukan 'X'...'X'. Meneruskan False akan menyebabkan data ditimpa jika ada nama duplikat di kolom

Tidak digunakan lagi sejak versi 1. 5. 0. Tidak diterapkan, dan argumen baru untuk menentukan pola nama kolom duplikat akan ditambahkan sebagai gantinya

storage_options dict, opsional

Opsi ekstra yang masuk akal untuk koneksi penyimpanan tertentu, mis. g. host, port, nama pengguna, kata sandi, dll. Untuk URL HTTP(S), key-value pair diteruskan ke

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
7 sebagai opsi tajuk. Untuk URL lain (mis. g. dimulai dengan “s3. //", dan "gcs. //”) pasangan nilai kunci diteruskan ke
>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
8. Silakan lihat
>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
_9 dan
>>> pd.read_excel('tmp.xlsx', index_col=0,
..               na_values=['string1', 'string2'])  
       Name  Value
0       NaN      1
1       NaN      2
2  #Comment      3
0 untuk detail lebih lanjut, dan untuk contoh lebih lanjut tentang opsi penyimpanan lihat

Baru di versi 1. 2. 0

MengembalikanDataFrame atau dict dari DataFrames

DataFrame dari file Excel yang diteruskan. Lihat catatan dalam argumen sheet_name untuk informasi lebih lanjut tentang kapan dict DataFrames dikembalikan

Lihat juga

Tulis DataFrame ke file Excel

Tulis DataFrame ke file nilai yang dipisahkan koma (csv).

Baca file nilai yang dipisahkan koma (csv) ke dalam DataFrame

Baca tabel garis berformat dengan lebar tetap ke dalam DataFrame

Contoh

File dapat dibaca menggunakan nama file sebagai string atau objek file terbuka

>>> pd.read_excel('tmp.xlsx', index_col=0)  
       Name  Value
0   string1      1
1   string2      2
2  #Comment      3

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3

Indeks dan header dapat ditentukan melalui argumen index_col dan header

>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3

Jenis kolom disimpulkan tetapi dapat ditentukan secara eksplisit

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0

Nilai True, False, dan NA, dan ribuan pemisah memiliki default, tetapi juga dapat ditentukan secara eksplisit. Berikan nilai yang Anda inginkan sebagai string atau daftar string

Bisakah Python menarik data dari Excel?

Seseorang dapat mengambil informasi dari spreadsheet . Membaca, menulis, atau memodifikasi data dapat dilakukan dengan Python dapat dilakukan dengan menggunakan metode yang berbeda.

Bagaimana cara membaca file XLSX dengan Python?

Dua cara umum untuk membaca file XLSX dengan Python adalah OpenPyXL dan Pandas. .
Hal pertama yang perlu Anda lakukan (dan ini berlaku untuk kedua metode dalam daftar) adalah mengunduh Python. .
Selanjutnya, unduh openpyxl dari situs web mereka menggunakan pip (manajer paket standar Python). .
Impor modul yang Anda butuhkan. openpyxk dan Path