Python Tutorial Pandas: DataFrame, Rentang Tanggal & Penggunaannya

โšก Ringkasan Cerdas

Pandas adalah perangkat lunak sumber terbuka. Python Pustaka untuk memanipulasi data tabular. Pustaka ini menyediakan struktur Series dan DataFrame, rentang tanggal, alat bantu inspeksi, serta operasi slice, drop, concatenate, sort, dan rename yang ditunjukkan sepanjang panduan ini.

  • ๐Ÿ”˜ Dibangun di atas NumPy: Pandas membutuhkan NumPy, yang menyediakan array di balik setiap Series dan DataFrame.
  • โ˜‘๏ธ Dua struktur: Series menyimpan satu dimensi berlabel; DataFrame menyimpan baris dan kolom dengan tipe campuran.
  • โœ… Rentang tanggal: pd.date_range() membangun indeks dari tanggal mulai, jumlah periode, dan frekuensi.
  • ๐Ÿงช Periksa terlebih dahulu: Fungsi head(), tail() dan describe() mengungkapkan bentuk, sebaran, dan persentil sebelum analisis apa pun.
  • ๏ธ Iris dengan tepat: Perintah bracket names memilih kolom, loc memilih berdasarkan label, dan iloc memilih berdasarkan posisi.
  • โš ๏ธ Catatan versi: Alias โ€‹โ€‹frekuensi M sudah usang sejak Pandas 2.2; rilis terbaru mengharapkan ME.

Python Tutorial Pandas: DataFrame, Rentang Tanggal, dan Penggunaan Pandas

Apa itu Panda? Python?

Panda adalah pustaka sumber terbuka yang memungkinkan Anda melakukan manipulasi dan analisis data di Python, mencakup tabel numerik dan deret waktu. Ini menyediakan cara mudah untuk membuat, memanipulasi, dan mengolah data, dan dibangun di atas JumlahPyOleh karena itu, NumPy harus ada agar Pandas dapat beroperasi.

Mengapa menggunakan Panda?

Ilmuwan data memanfaatkan Pandas di Python untuk keuntungan berikut:

  • Menangani data yang hilang dengan mudah
  • Metode ini menggunakan Series untuk data satu dimensi dan DataFrame untuk data multidimensi.
  • Ini memberikan cara yang efisien untuk membagi data
  • Ini memberikan cara yang fleksibel untuk menggabungkan, menggabungkan, atau membentuk ulang data
  • Ini mencakup perangkat analisis deret waktu yang canggih.

Singkatnya, Pandas menyediakan struktur data yang ampuh dan mudah digunakan, serta cara untuk mengoperasikannya dengan cepat, itulah sebabnya Pandas menjadi andalan sebagian besar pengembang. Python analisis data kerja.

Cara Menginstal Pandas

Pandas disertakan dengan Anaconda dan sebagian besar layanan notebook terkelola, jadi biasanya sudah terinstal. Jika impor gagal, salah satu perintah di bawah ini akan menambahkannya. Lingkungan yang dibangun di Cara memasang TensorFlow juga mengandung Panda.

  • pip: pip install pandas
  • Anakonda: conda install -c anaconda pandas
  • Di dalam a Jupyter buku catatan sel:
import sys
!conda install --yes --prefix {sys.prefix} pandas

Apa itu Bingkai Data Pandas?

Pandas DataFrame adalah struktur data berlabel dua dimensi yang kolomnya dapat menyimpan berbagai tipe data. Ini adalah cara standar untuk menyimpan data dalam format tabel: baris menyimpan observasi dan kolom memberi nama informasi. Misalnya, harga pompa cor beton mini bisa berupa nama kolom dan 2, 3, 4 bisa berupa nilai harga.

Data frame sudah dikenal luas oleh para ahli statistik dan praktisi data lainnya. Gambar di bawah menunjukkan bentuk tersebut โ€” indeks baris berlabel di sisi samping dan kolom bernama di bagian atas.

Tata letak Pandas DataFrame dengan indeks baris berlabel dan kolom bernama.

Apa itu Seri?

Series adalah struktur data satu dimensi. Ia dapat menyimpan tipe data apa pun, seperti bilangan bulat, bilangan pecahan, atau string, dan berguna ketika Anda ingin melakukan komputasi atau mengembalikan array satu dimensi. Secara definisi, Series tidak dapat memiliki banyak kolom; untuk kasus tersebut, gunakan struktur DataFrame.

Konstruktor Pandas Series menerima parameter-parameter berikut:

  • Tanggal: dapat berupa daftar, kamus, atau nilai skalar.
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Anda dapat menambahkan indeks dengan indexIni memberi nama pada baris, dan panjangnya harus sama dengan ukuran kolom.

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

Di bawah ini Anda membuat Pandas Series dengan nilai yang hilang di baris ketiga. Nilai yang hilang di Python ditampilkan sebagai NaN, dan np.nan dari NumPy menciptakan satu secara artifisial.

pd.Series([1,2,np.nan])

Keluaran

0    1.0
1    2.0
2    NaN
dtype: float64

Buat Bingkai Data Pandas

Anda dapat mengkonversi array NumPy menjadi DataFrame dengan pd.DataFrame()Sebaliknya juga dimungkinkan: untuk mengkonversi DataFrame kembali menjadi array, gunakan np.array(), atau df.to_numpy(), yang direkomendasikan oleh dokumentasi Pandas saat ini.

## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]] 
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)

## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame:    0  1
0  1  2
1  3  4
Numpy array: [[1 2]
 [3 4]]

Kamus berfungsi sama baiknya sebagai input untuk pd.DataFrame().

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Usia Nama
0 30 John
1 40 Smith

Data Rentang Panda

Pandas memiliki API yang mudah digunakan untuk membuat rentang tanggal, yang menjadi indeks dari deret waktu. Pemanggilan tersebut berbentuk seperti ini:

pd.date_range(start, periods, freq):

  • Parameter pertama adalah tanggal mulai
  • Parameter kedua adalah jumlah periode (opsional jika tanggal akhir ditentukan)
  • Parameter terakhir adalah frekuensi: hari D, bulan M dan tahun Y
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

Keluaran

Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)

Keluaran

Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')

Catatan versi: bulan alias M Kode yang digunakan di atas sudah usang sejak Pandas 2.2 dan dihapus di Pandas 3.0. Pada rilis terbaru, lewati freq='ME' untuk akhir bulan; indeks yang dihasilkan identik.

Memeriksa Data

Anda dapat memeriksa bagian awal atau akhir dari sebuah dataset dengan head() or tail() dipanggil pada DataFrame, seperti yang ditunjukkan oleh contoh Pandas di bawah ini.

Langkah 1) Buat urutan acak dengan NumPy. Urutan tersebut memiliki 4 kolom dan 6 baris.

random = np.random.randn(6,4)

Langkah 2) Kemudian Anda membuat DataFrame menggunakan Pandas.

penggunaan dates_m sebagai indeks, sehingga setiap baris diberi nama yang sesuai dengan tanggal, dan beri nama 4 kolom dengan columns argumen.

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

Karena np.random.randn() Jika dijalankan tanpa bibit, angka Anda akan berbeda dari yang tercetak di sini. Hubungi np.random.seed(0) Pertama, jika Anda ingin mereproduksi kumpulan data yang tetap.

Langkah 3) Menggunakan fungsi kepala

df.head(3)
A B C D
2030-01-31 1.139433 1.318510 -0.181334 1.615822
2030-02-28 -0.081995 -0.063582 0.857751 -0.527374
2030-03-31 -0.519179 0.080984 -1.454334 1.314947

Langkah 4) Menggunakan fungsi ekor

df.tail(3)
A B C D
2030-04-30 -0.685448 -0.011736 0.622172 0.104993
2030-05-31 -0.935888 -0.731787 -0.558729 0.768774
2030-06-30 1.096981 0.949180 -0.196901 -0.471556

Langkah 5) Salah satu cara terbaik untuk mendapatkan petunjuk tentang data tersebut adalah... describe()Laporan ini menyajikan jumlah, rata-rata, standar deviasi, nilai minimum, nilai maksimum, dan persentil dari dataset.

df.describe()
A B C D
menghitung 6.000000 6.000000 6.000000 6.000000
berarti 0.002317 0.256928 -0.151896 0.467601
std 0.908145 0.746939 0.834664 0.908910
menit -0.935888 -0.731787 -1.454334 -0.527374
25% -0.643880 -0.050621 -0.468272 -0.327419
50% -0.300587 0.034624 -0.189118 0.436883
75% 0.802237 0.732131 0.421296 1.178404
max 1.139433 1.318510 0.857751 1.615822

Irisan Data

Pengiris (slicing) mengambil sebagian baris atau kolom dari DataFrame. Anda dapat menggunakan nama kolom untuk mengekstrak data.tract satu kolom, seperti yang ditunjukkan contoh Pandas di bawah ini.

## Slice
### Using name
df['A']

2030-01-31   -0.168655
2030-02-28    0.689585
2030-03-31    0.767534
2030-04-30    0.557299
2030-05-31   -1.547836
2030-06-30    0.511551
Freq: M, Name: A, dtype: float64

Untuk memilih beberapa kolom, Anda memerlukan tanda kurung ganda. [[..,..]]Pasangan pertama berarti Anda ingin memilih kolom; pasangan kedua menyatakan kolom mana yang akan dikembalikan.

df[['A', 'B']]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Anda dapat memotong baris dengan titik dua. Kode di bawah ini mengembalikan tiga baris pertama.

### using a slice for row
df[0:3]
A B C D
2030-01-31 -0.168655 0.587590 0.572301 -0.031827
2030-02-28 0.689585 0.998266 1.164690 0.475975
2030-03-31 0.767534 -0.940617 0.227255 -0.341532

The loc Accessor memilih kolom berdasarkan nama. Seperti biasa, nilai sebelum koma mewakili baris dan nilai setelahnya mewakili kolom, dan tanda kurung diperlukan untuk memilih lebih dari satu kolom.

## Multi col
df.loc[:,['A','B']]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Ada metode lain untuk memilih beberapa baris dan kolom. iloc[] menggunakan posisi bilangan bulat alih-alih nama kolom, sehingga kode di bawah ini mengembalikan DataFrame yang sama seperti di atas.

df.iloc[:, :2]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Jatuhkan Kolom

Anda dapat menghapus kolom dengan df.drop(), menyampaikan nama-nama tersebut columns argumen.

df.drop(columns=['A', 'C'])
B D
2030-01-31 0.587590 -0.031827
2030-02-28 0.998266 0.475975
2030-03-31 -0.940617 -0.341532
2030-04-30 0.507350 -0.296035
2030-05-31 1.276558 0.523017
2030-06-30 1.572085 -0.594772

Rangkaian

Anda dapat menggabungkan dua DataFrame dengan pd.concat()Pertama, buatlah kedua bingkai tersebut.

import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
                     'Age': ['25', '30', '50']},
                    index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
                     'Age': ['26', '11']},
                    index=[3, 4])  

Kemudian gabungkan semuanya.

df_concat = pd.concat([df1,df2]) 
df_concat
Usia nama
0 25 John
1 30 Smith
2 50 paul
3 26 Adam
4 11 Smith

Jatuhkan Duplikat

Ketika sebuah dataset berisi informasi duplikat, drop_duplicates() adalah cara mudah untuk mengecualikan baris yang berulang. df_concat berisi pengamatan duplikat: Smith muncul dua kali di name kolom.

df_concat.drop_duplicates('name')
Usia nama
0 25 John
1 30 Smith
2 50 paul
3 26 Adam

Urutkan Nilai

Anda dapat mengurutkan bingkai dengan sort_values(). Catat itu Age Dibuat sebagai teks di sini, jadi baris-barisnya diurutkan berdasarkan urutan string.

df_concat.sort_values('Age')
Usia nama
4 11 Smith
0 25 John
3 26 Adam
1 30 Smith
2 50 paul

Mengganti Nama Kolom

penggunaan rename() Untuk mengganti nama kolom di Pandas. Pada setiap pasangan, nilai pertama adalah nama kolom saat ini dan nilai kedua adalah nama kolom yang baru.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Usia_ppl Nama keluarga
0 25 John
1 30 Smith
2 50 paul
3 26 Adam
4 11 Smith

Referensi Cepat Metode Pandas

Tabel ini memetakan setiap tugas umum ke metode Pandas yang menjalankannya.

tugas metode
mengimpor data baca_csv
membuat seri Seri
Buat Kerangka Data Bingkai Data
Buat rentang tanggal tanggal_rentang
kembali kepala kepala
ekor kembali ekor
Menggambarkan menggambarkan
potong menggunakan nama nama data['nama kolom']
Iris menggunakan baris nama_data[0:5]

Pertanyaan Umum Demo Slot

Memanggil pd.read_csv() dengan jalur atau URLTambahkan nama untuk kolom label, gunakan `sep` untuk pemisah yang berbeda, dan `usecols` untuk hanya menyimpan kolom yang Anda butuhkan.

isnull() menandainya sebagai null, dropna() menghapus baris atau kolom yang terpengaruh, dan fillna() mengganti dengan konstanta atau statistik seperti rata-rata kolom. Entri yang hilang akan dicetak sebagai NaN.

Fungsi groupby() membagi baris menjadi beberapa kelompok berdasarkan kolom kunci, menerapkan agregasi seperti hitungan, jumlah, atau rata-rata pada setiap kelompok, kemudian menggabungkan hasilnya ke dalam kerangka baru.

Buat mask boolean dan berikan dalam tanda kurung, misalnya df[df.Age == 30]. Gabungkan mask dengan operator ampersand dan pipe, lalu bungkusping Setiap perbandingan dalam tanda kurung.

pd.merge() mencocokkan baris pada kolom kunci seperti halnya SQL Fungsi `join` bekerja dengan cara mengatur `inner`, `left`, `right`, atau `outer`. Fungsi `concat()` menumpuk frame, bukan mencocokkan kunci.

df.to_csv('out.csv', index=False) menulis file koma, dan df.to_excel('out.xlsx') menulis lembar kerja. (Hancurkan)ping Indeks tersebut menghindari kolom pertama yang tidak bernama pada pembacaan berikutnya.

Asisten AI membuat profil bingkai baru, menyarankan panggilan describe, groupby, dan plot yang layak dijalankan, serta menandai kolom dengan tipe data yang aneh atau banyak nilai null. Konfirmasikan setiap saran dengan data mentah.

Ya. Kopilot GitHub melengkapi komentar biasa menjadi kode Pandas yang berfungsi dalam sebuah Jupyter sel. RevPeriksa tipe data dan jumlah baris sebelum mempercayai hasilnya.

Ringkaslah postingan ini dengan: