Pandas & NumPy Academy · Pelajaran

Pemeriksaan Asas DataFrame

Gunakan head(), tail(), info(), describe() dan shape untuk memahami kandungan serta struktur mana-mana DataFrame dengan pantas.

Pelajaran 4 daripada 413 langkah

Pemeriksaan Asas DataFrame ialah pelajaran Pandas & NumPy Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pandas & NumPy Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pandas & NumPy Academy merangkumi sejumlah 4 pelajaran.

Lima Langkah Pertama dengan Mana-mana DataFrame

Setiap kali anda memuatkan set data baharu, urutan pemeriksaan yang sistematik dapat menjimatkan berjam-jam penyahpepijatan. Kit alat Pandas untuk tujuan ini merangkumi: head() untuk melihat baris pertama, tail() untuk baris terakhir, info() untuk jenis lajur dan nilai nol, describe() untuk statistik, serta shape untuk dimensi. Menjalankan lima pemeriksaan ini mengambil masa kurang daripada seminit dan mendedahkan kebanyakan isu kualiti data dengan serta-merta.

import pandas as pd

# Assume df is loaded from a CSV
print(df.shape)   # (rows, cols)
df.head()         # first 5 rows
df.info()         # dtypes + non-null counts
df.describe()     # statistics

head() dan tail()

df.head(n) mengembalikan n baris pertama (lalai 5) sebagai DataFrame. df.tail(n) mengembalikan n baris terakhir. Kedua-duanya membantu anda mengesahkan bahawa data dihuraikan dengan betul — memeriksa bahawa nama lajur berada dalam baris pengepala, lajur berangka mengandungi nombor, dan rentetan tarikh tidak disalahtafsirkan. Kedua-duanya tidak merosakkan data dan mengembalikan DataFrames baharu.

import pandas as pd

df = pd.DataFrame({'a': range(20), 'b': range(20, 40)})
print(df.head(3))
#    a   b
# 0  0  20
# 1  1  21
# 2  2  22
print(df.tail(2))
#     a   b
# 18 18  38
# 19 19  39

info(): Jenis dan Kiraan Bukan Nol

df.info() mencetak ringkasan padat: dtype indeks, bilangan nilai bukan nol bagi setiap lajur, dtype setiap lajur, serta jumlah penggunaan memori. Lajur yang mempunyai lebih sedikit nilai bukan nol berbanding jumlah baris mengandungi data yang hilang. Dtype objek sering menandakan lajur rentetan (atau lajur dengan jenis bercampur) yang mungkin perlu dibersihkan sebelum analisis.

import pandas as pd
import numpy as np

df = pd.DataFrame({'name': ['A', 'B', None],
                   'score': [80.0, np.nan, 90.0],
                   'grade': ['A', 'C', 'A']})
df.info()
# Column  Non-Null Count  Dtype
# name    2 non-null      object
# score   2 non-null      float64
# grade   3 non-null      object

describe(): Ringkasan Statistik

df.describe() mengira kiraan, min, std, min, persentil ke-25, ke-50 (median), ke-75, dan max untuk semua lajur berangka. Hantar include='all' untuk turut meringkaskan lajur objek (rentetan). Hantar include='object' untuk meringkaskan kategori sahaja. Output itu sendiri ialah DataFrame, jadi anda boleh menyimpannya atau menetapkan gayanya untuk laporan.

import pandas as pd

df = pd.DataFrame({'age': [25, 30, 35, 40], 'score': [88, 72, 91, 65]})
print(df.describe().round(1))
#        age  score
# count  4.0    4.0
# mean  32.5   79.0
# std    6.5   12.0

shape, ndim, dan size

df.shape ialah tupel (nrows, ncols). df.ndim sentiasa mengembalikan 2 untuk DataFrames. df.size ialah jumlah keseluruhan sel. Gunakan len(df) untuk bilangan baris (sama seperti df.shape[0]). Ini ialah pemeriksaan kewarasan yang paling mudah — sahkan bilangan baris yang dijangka selepas memuatkan data dan selepas setiap langkah penapisan.

import pandas as pd

df = pd.DataFrame({'x': range(100), 'y': range(100), 'z': range(100)})
print(df.shape)   # (100, 3)
print(len(df))    # 100
print(df.size)    # 300
print(df.ndim)    # 2

dtypes dan select_dtypes()

df.dtypes mengembalikan Siri yang memetakan setiap nama lajur kepada dtype-nya. df.select_dtypes(include='number') mengembalikan DataFrame baharu yang hanya mengandungi lajur berangka — berguna untuk mengira korelasi atau menggunakan transformasi berangka tanpa tersilap beroperasi pada lajur rentetan. Hantar exclude='object' untuk menggugurkan lajur teks.

import pandas as pd

df = pd.DataFrame({'a': [1,2], 'b': [1.0,2.0], 'c': ['x','y']})
print(df.dtypes)
# a      int64
# b    float64
# c     object

numeric = df.select_dtypes(include='number')
print(numeric.columns.tolist())  # ['a', 'b']

isnull() dan Kiraan Null

df.isnull().sum() memberikan kiraan nilai yang hilang bagi setiap lajur — cara terpantas untuk mencari lajur yang perlu dibersihkan. Bahagikan dengan len(df) untuk mendapatkan perkadaran nilai yang hilang. Lajur yang lebih daripada 50% nilainya hilang selalunya memerlukan pengendalian khas: sama ada menggugurkannya atau menggunakan imputasi khusus domain.

import pandas as pd
import numpy as np

df = pd.DataFrame({'a': [1, np.nan, 3], 'b': [np.nan, np.nan, 6]})
print(df.isnull().sum())
# a    1
# b    2
print((df.isnull().sum() / len(df)).round(2))
# a    0.33
# b    0.67

value_counts() pada Lajur DataFrame

Memanggil df['col'].value_counts() menyenaraikan kekerapan setiap nilai unik dalam lajur tersebut, diisih mengikut kiraan. Tambah normalize=True untuk mendapatkan peratusan. Gunakan dropna=False untuk turut mengira NaN sebagai kategori. Ini ialah cara terpantas untuk menyemak ketidakseimbangan kategori atau nilai tidak dijangka dalam lajur kategori.

import pandas as pd

df = pd.DataFrame({'status': ['active','inactive','active','active','banned']})
print(df['status'].value_counts())
# active      3
# inactive    1
# banned      1
print(df['status'].value_counts(normalize=True).round(2))

Pemeriksaan columns dan index

df.columns.tolist() memberikan senarai Python biasa bagi nama lajur — berguna untuk manipulasi terprogram atau pengelogan. df.index menunjukkan label baris dan jenisnya. Semak df.index.is_unique untuk mengesahkan bahawa tiada label baris pendua, yang merupakan prasyarat bagi banyak operasi gabungan dan pengiraan siri masa.

import pandas as pd

df = pd.DataFrame({'a': [1,2,3]}, index=['x', 'y', 'z'])
print(df.columns.tolist())     # ['a']
print(df.index.tolist())       # ['x', 'y', 'z']
print(df.index.is_unique)      # True

sample() untuk Pemeriksaan Rawak

df.sample(n) mengembalikan n baris yang dipilih secara rawak tanpa penggantian. df.sample(frac=0.1) mengembalikan 10% baris. Tetapkan random_state= untuk kebolehulangan. Persampelan rawak lebih baik daripada head() untuk mengesan isu di tengah-tengah set data besar yang mungkin tidak muncul dalam beberapa baris pertama.

import pandas as pd

df = pd.DataFrame({'x': range(1000), 'y': range(1000)})
print(df.sample(3, random_state=42))
print(df.sample(frac=0.005, random_state=0))  # 0.5% of rows

memory_usage() untuk Peruntukan Saiz

df.memory_usage(deep=True) mengembalikan memori yang digunakan oleh setiap lajur dalam bait. deep=True memaksa pengukuran tepat bagi lajur dtype objek yang rentetannya berada di luar penimbal DataFrame. Jumlahkan nilai tersebut untuk mendapatkan jumlah memori. Gunakan ini sebelum dan selepas penurunan dtype untuk mengesahkan bahawa penggunaan memori telah dikurangkan.

import pandas as pd

df = pd.DataFrame({'a': range(10000), 'b': [str(i) for i in range(10000)]})
usage = df.memory_usage(deep=True)
print(usage)
print('Total bytes:', usage.sum())

Semakan Pantas

Uji pemahaman anda tentang pemeriksaan asas DataFrame daripada pelajaran ini.

Ulang Kaji Pelajaran

Dalam pelajaran ini anda telah mempelajari: head() dan tail() membolehkan anda memeriksa secara visual bahagian awal dan akhir DataFrame, info() mendedahkan dtypes dan kiraan nilai yang hilang dalam satu panggilan, dan describe() menyediakan ringkasan statistik untuk lajur berangka. Seterusnya kita akan memuatkan data daripada format fail yang paling biasa — CSV, Excel, dan JSON — ke dalam DataFrames.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Pemeriksaan Asas DataFrame” percuma?

Ya — teks penuh “Pemeriksaan Asas DataFrame” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Pandas & NumPy Academy, tingkat taraf kepada CoddyKit PRO. Kursus Pandas & NumPy Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pemeriksaan Asas DataFrame”?

Gunakan head(), tail(), info(), describe() dan shape untuk memahami kandungan serta struktur mana-mana DataFrame dengan pantas. Anda berlatih Pandas & NumPy Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pandas & NumPy Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pandas & NumPy Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Pemeriksaan Asas DataFrame” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pandas & NumPy Academy ini?

Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mencipta DataFrames
  2. Memilih Lajur dan Baris
  3. Menambah dan Menggugurkan Lajur
  4. Pemeriksaan Asas DataFrame
← Kembali ke Pandas & NumPy Academy