cari
Rumahpembangunan bahagian belakangTutorial PythonBagaimana untuk memproses data Excel dengan perpustakaan Pandas Python?

1. Baca jadual xlsx: pd.read_excel()

Kandungan asal adalah seperti berikut:

Bagaimana untuk memproses data Excel dengan perpustakaan Pandas Python?

a) Baca yang ke- Helaian (sub-jadual, anda boleh melihat atau menambah atau memadam sub-jadual di sebelah kiri bawah) data

import pandas as pd
# 每次都需要修改的路径
path = "test.xlsx"
# sheet_name默认为0,即读取第一个sheet的数据
sheet = pd.read_excel(path, sheet_name=0)
print(sheet)
"""
  Unnamed: 0  name1  name2  name3
0       row1      1    2.0      3
1       row2      4    NaN      6
2       row3      7    8.0      9
"""

Anda dapat melihat bahawa tiada kandungan di sudut kiri atas borang asal, dan hasil baca ialah "Tanpa Nama : 0", ini kerana fungsi read_excel akan menjadi lalai baris pertama jadual sebagai nama indeks lajur . Selain itu, untuk nama indeks baris, penomboran bermula dari baris kedua secara lalai (kerana baris pertama lalai ialah nama indeks lajur, jadi baris pertama lalai bukan data Jika tidak dinyatakan secara khusus, penomboran bermula dari 0 secara automatik, sebagai mengikuti.

sheet = pd.read_excel(path)
# 查看列索引名,返回列表形式
print(sheet.columns.values)
# 查看行索引名,默认从第二行开始编号,如果不特意指定,则自动从0开始编号,返回列表形式
print(sheet.index.values)
"""
['Unnamed: 0' 'name1' 'name2' 'name3']
[0 1 2]
"""

b) Nama indeks lajur juga boleh disesuaikan, seperti berikut:

sheet = pd.read_excel(path, names=['col1', 'col2', 'col3', 'col4'])
print(sheet)
# 查看列索引名,返回列表形式
print(sheet.columns.values)
"""
   col1  col2  col3  col4
0  row1     1   2.0     3
1  row2     4   NaN     6
2  row3     7   8.0     9
['col1' 'col2' 'col3' 'col4']
"""

c) Lajur ke-n juga boleh ditentukan sebagai indeks baris namakan , seperti berikut:

# 指定第一列为行索引
sheet = pd.read_excel(path, index_col=0)
print(sheet)
"""
      name1  name2  name3
row1      1    2.0      3
row2      4    NaN      6
row3      7    8.0      9
"""

d) Langkau baris ke-n data semasa membaca

# 跳过第2行的数据(第一行索引为0)
sheet = pd.read_excel(path, skiprows=[1])
print(sheet)
"""
  Unnamed: 0  name1  name2  name3
0       row2      4    NaN      6
1       row3      7    8.0      9
"""

2. Dapatkan saiz data jadual: bentuk

path = "test.xlsx"
# 指定第一列为行索引
sheet = pd.read_excel(path, index_col=0)
print(sheet)
print('==========================')
print('shape of sheet:', sheet.shape)
"""
      name1  name2  name3
row1      1    2.0      3
row2      4    NaN      6
row3      7    8.0      9
==========================
shape of sheet: (3, 3)
"""

3. Kaedah mengindeks data: [ ] / loc[] / iloc[]

1 Terus tambah kurungan segi empat sama pada indeks

Anda boleh menggunakan kurungan segi empat sama untuk menambah nama lajur Kaedah [col_name] digunakan untuk mengekstrak data lajur tertentu, dan kemudian kurungan segi empat sama ditambah nombor indeks [indeks] digunakan untuk mengindeks nilai kedudukan khusus lajur ini. Di sini, lajur bernama name1 diindeks, dan kemudian data yang terletak di baris 1 lajur (indeks ialah 1) dicetak: 4, seperti berikut:

sheet = pd.read_excel(path)
# 读取列名为 name1 的列数据
col = sheet['name1']
print(col)
# 打印该列第二个数据
print(col[1]) # 4
"""
0    1
1    4
2    7
Name: name1, dtype: int64
4
"""

kaedah iloc, indeks oleh nombor integer

Gunakan indeks sheet.iloc[ ], kurungan segi empat sama ialah nombor kedudukan integer bagi baris dan lajur (bermula dari 0 selepas mengecualikan lajur sebagai indeks baris dan baris sebagai indeks lajur) nombor siri).
a) sheet.iloc[1, 2]: Ekstrak baris 2, lajur 3 data. Yang pertama ialah indeks baris, yang kedua ialah indeks lajur

b) sheet.iloc[0: 2]: Ekstrak dua baris pertamadata

c) sheet.iloc[0:2, 0:2]: Ekstrak dua baris pertama daripada dua lajur pertama data melalui sharding

# 指定第一列数据为行索引
sheet = pd.read_excel(path, index_col=0)
# 读取第2行(row2)的第3列(6)数据
# 第一个是行索引,第二个是列索引
data = sheet.iloc[1, 2]
print(data)  # 6
print('================================')
# 通过分片的方式提取 前两行 数据
data_slice = sheet.iloc[0:2]
print(data_slice)
print('================================')
# 通过分片的方式提取 前两行 的 前两列 数据
data_slice = sheet.iloc[0:2, 0:2]
print(data_slice)
"""
6
================================
      name1  name2  name3
row1      1    2.0      3
row2      4    NaN      6
================================
      name1  name2
row1      1    2.0
row2      4    NaN
"""

3. kaedah loc, indeks mengikut nama baris dan lajur

gunakan sheet.loc[ ] indeks, kurungan segi empat sama ialah baris dan lajur Rentetan nama . Penggunaan khusus adalah sama seperti iloc , kecuali indeks integer iloc digantikan dengan indeks nama baris dan lajur. Kaedah pengindeksan ini lebih intuitif untuk digunakan.

Nota: iloc[1: 2] tidak mengandungi 2, tetapi loc['row1': 'row2'] tidak Mengandungi 'baris2'.

# 指定第一列数据为行索引
sheet = pd.read_excel(path, index_col=0)
# 读取第2行(row2)的第3列(6)数据
# 第一个是行索引,第二个是列索引
data = sheet.loc['row2', 'name3']
print(data)  # 1
print('================================')
# 通过分片的方式提取 前两行 数据
data_slice = sheet.loc['row1': 'row2']
print(data_slice)
print('================================')
# 通过分片的方式提取 前两行 的 前两列 数据
data_slice1 = sheet.loc['row1': 'row2', 'name1': 'name2']
print(data_slice1)
"""
6
================================
      name1  name2  name3
row1      1    2.0      3
row2      4    NaN      6
================================
      name1  name2
row1      1    2.0
row2      4    NaN
"""

4. Tentukan sama ada data kosong: np.isnan() / pd.isnull()

1. Gunakan isnan() atau daripada pustaka numpy Kaedah isnull() perpustakaan panda menentukan sama ada ia sama dengan nan .

sheet = pd.read_excel(path)
# 读取列名为 name1 的列数据
col = sheet['name2']
 
print(np.isnan(col[1]))  # True
print(pd.isnull(col[1]))  # True
"""
True
True
"""

2. Gunakan str() untuk menukar kepada rentetan dan tentukan sama ada ia sama dengan 'nan' .

sheet = pd.read_excel(path)
# 读取列名为 name1 的列数据
col = sheet['name2']
print(col)
# 打印该列第二个数据
if str(col[1]) == 'nan':
    print('col[1] is nan')
"""
0    2.0
1    NaN
2    8.0
Name: name2, dtype: float64
col[1] is nan
"""

5. Cari data yang memenuhi syarat

Fahami kod di bawah

# 提取name1 == 1 的行
mask = (sheet['name1'] == 1)
x = sheet.loc[mask]
print(x)
"""
      name1  name2  name3
row1      1    2.0      3
"""

6. Ubah suai nilai elemen: replace()

helaian['name2'].replace(2, 100, inplace=True) : Tukar elemen 2 nama lajur2 kepada elemen 100, beroperasi di tempatnya.

sheet['name2'].replace(2, 100, inplace=True)
print(sheet)
"""
      name1  name2  name3
row1      1  100.0      3
row2      4    NaN      6
row3      7    8.0      9
"""

helaian['name2'].replace(np.nan, 100, inplace=True) : Tukar elemen kosong (nan) dalam lajur name2 kepada elemen 100, beroperasi dalam tempat.

import numpy as np 
sheet['name2'].replace(np.nan, 100, inplace=True)
print(sheet)
print(type(sheet.loc['row2', 'name2']))
"""
      name1  name2  name3
row1      1    2.0      3
row2      4  100.0      6
row3      7    8.0      9
"""

7. Tambahkan data: [ ]

Untuk menambah lajur, terus gunakan kurungan segi empat sama [nama untuk ditambahkan] untuk menambah.

helaian['name_add'] = [55, 66, 77]: Tambahkan lajur bernama name_add dengan nilai [55, 66, 77]

path = "test.xlsx"
# 指定第一列为行索引
sheet = pd.read_excel(path, index_col=0)
print(sheet)
print('====================================')
# 添加名为 name_add 的列,值为[55, 66, 77]
sheet['name_add'] = [55, 66, 77]
print(sheet)
"""
      name1  name2  name3
row1      1    2.0      3
row2      4    NaN      6
row3      7    8.0      9
====================================
      name1  name2  name3  name_add
row1      1    2.0      3        55
row2      4    NaN      6        66
row3      7    8.0      9        77
"""

8. Padam data: del() / drop()

a) del(sheet['name3']): Gunakan kaedah del untuk memadam

sheet = pd.read_excel(path, index_col=0)
# 使用 del 方法删除 'name3' 的列
del(sheet['name3'])
print(sheet)
"""
      name1  name2
row1      1    2.0
row2      4    NaN
row3      7    8.0
"""

b) sheet.drop('row1', axis=0)

Gunakan kaedah drop untuk memadam baris row1 Jika lajur dipadamkan, paksi yang sepadan=1.

Apabila parameter inplace adalah Benar, parameter tidak akan dikembalikan dan data asal akan dipadamkan terus

Apabila parameter inplace adalah Palsu (lalai), data asal tidak akan menjadi. diubah suai, tetapi data yang diubah suai akan dikembalikan Data

sheet.drop('row1', axis=0, inplace=True)
print(sheet)
"""
      name1  name2  name3
row2      4    NaN      6
row3      7    8.0      9
"""

c) sheet.drop(labels=['name1', 'name2'], axis=1)

<.>Gunakan parameter label=[ ] untuk memadam Berbilang baris atau lajur

# 删除多列,默认 inplace 参数位 False,即会返回结果
print(sheet.drop(labels=[&#39;name1&#39;, &#39;name2&#39;], axis=1))
"""
      name3
row1      3
row2      6
row3      9
"""

9 Simpan ke fail excel: to_excel()

1 Fail .xlsx

names = [&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]
scores = [99, 100, 99]
result_excel = pd.DataFrame()
result_excel["姓名"] = names
result_excel["评分"] = scores
# 写入excel
result_excel.to_excel(&#39;test3.xlsx&#39;)

Bagaimana untuk memproses data Excel dengan perpustakaan Pandas Python?

2. Simpan fail excel yang diubah suai sebagai fail .xlsx.

Sebagai contoh, selepas mengubah suai nan dalam jadual asal kepada 100, simpan fail:

import numpy as np 
# 指定第一列为行索引
sheet = pd.read_excel(path, index_col=0)
sheet[&#39;name2&#39;].replace(np.nan, 100, inplace=True)
sheet.to_excel(&#39;test2.xlsx&#39;)

Buka test2.xlsx dan hasilnya adalah seperti berikut:

Bagaimana untuk memproses data Excel dengan perpustakaan Pandas Python?

Atas ialah kandungan terperinci Bagaimana untuk memproses data Excel dengan perpustakaan Pandas Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Tujuan utama python: fleksibiliti dan kemudahan penggunaanTujuan utama python: fleksibiliti dan kemudahan penggunaanApr 17, 2025 am 12:14 AM

Fleksibiliti Python dicerminkan dalam sokongan multi-paradigma dan sistem jenis dinamik, sementara kemudahan penggunaan berasal dari sintaks mudah dan perpustakaan standard yang kaya. 1. Fleksibiliti: Menyokong pengaturcaraan berorientasikan objek, fungsional dan prosedur, dan sistem jenis dinamik meningkatkan kecekapan pembangunan. 2. Kemudahan Penggunaan: Tatabahasa adalah dekat dengan bahasa semulajadi, perpustakaan standard merangkumi pelbagai fungsi, dan memudahkan proses pembangunan.

Python: Kekuatan pengaturcaraan serba bolehPython: Kekuatan pengaturcaraan serba bolehApr 17, 2025 am 12:09 AM

Python sangat disukai kerana kesederhanaan dan kuasa, sesuai untuk semua keperluan dari pemula hingga pemaju canggih. Kepelbagaiannya dicerminkan dalam: 1) mudah dipelajari dan digunakan, sintaks mudah; 2) perpustakaan dan kerangka yang kaya, seperti numpy, panda, dan sebagainya; 3) sokongan silang platform, yang boleh dijalankan pada pelbagai sistem operasi; 4) Sesuai untuk tugas skrip dan automasi untuk meningkatkan kecekapan kerja.

Belajar python dalam 2 jam sehari: panduan praktikalBelajar python dalam 2 jam sehari: panduan praktikalApr 17, 2025 am 12:05 AM

Ya, pelajari Python dalam masa dua jam sehari. 1. Membangunkan pelan kajian yang munasabah, 2. Pilih sumber pembelajaran yang betul, 3 menyatukan pengetahuan yang dipelajari melalui amalan. Langkah -langkah ini dapat membantu anda menguasai Python dalam masa yang singkat.

Python vs C: Pro and Cons untuk PemajuPython vs C: Pro and Cons untuk PemajuApr 17, 2025 am 12:04 AM

Python sesuai untuk pembangunan pesat dan pemprosesan data, manakala C sesuai untuk prestasi tinggi dan kawalan asas. 1) Python mudah digunakan, dengan sintaks ringkas, dan sesuai untuk sains data dan pembangunan web. 2) C mempunyai prestasi tinggi dan kawalan yang tepat, dan sering digunakan dalam pengaturcaraan permainan dan sistem.

Python: komitmen masa dan kadar pembelajaranPython: komitmen masa dan kadar pembelajaranApr 17, 2025 am 12:03 AM

Masa yang diperlukan untuk belajar python berbeza dari orang ke orang, terutamanya dipengaruhi oleh pengalaman pengaturcaraan sebelumnya, motivasi pembelajaran, sumber pembelajaran dan kaedah, dan irama pembelajaran. Tetapkan matlamat pembelajaran yang realistik dan pelajari terbaik melalui projek praktikal.

Python: Automasi, skrip, dan pengurusan tugasPython: Automasi, skrip, dan pengurusan tugasApr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Python dan Masa: Memanfaatkan masa belajar andaPython dan Masa: Memanfaatkan masa belajar andaApr 14, 2025 am 12:02 AM

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python: Permainan, GUI, dan banyak lagiPython: Permainan, GUI, dan banyak lagiApr 13, 2025 am 12:14 AM

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft