Akses .str
Akses metode string pada Series menggunakan .str dan terapkan lower(), upper(), strip(), serta len() pada semua nilai.
Akses .str adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Pengantar Pengakses .str
String Python memiliki banyak metode yang berguna seperti .lower(), .strip(), dan .replace(), tetapi Anda tidak dapat memanggilnya secara langsung pada Series Pandas yang berisi string—Anda harus menggunakan perulangan. Pengakses .str mengatasi hal ini dengan menyediakan versi tervectorisasi dari metode string bawaan Python pada Series, menerapkan operasi ke setiap elemen sekaligus tanpa menulis perulangan dan menangani NaN dengan baik (mengembalikan NaN untuk nilai yang hilang).
import pandas as pd
names = pd.Series([' Alice ', 'BOB', ' carol '])
# .strip() removes leading/trailing whitespace from every element
print(names.str.strip())
# 0 Alice
# 1 BOB
# 2 carol
# .lower() lowercases every element
print(names.str.strip().str.lower())
# 0 alice
# 1 bob
# 2 carolMetode Konversi Kapitalisasi
Kapitalisasi yang tidak konsisten merupakan salah satu masalah kualitas data yang paling umum. Pengakses .str menyediakan .lower(), .upper(), .title() (huruf pertama setiap kata menjadi huruf kapital), dan .capitalize() (hanya huruf pertama string). Gunakan .lower() sebelum perbandingan dan operasi groupby agar 'NYC' dan 'nyc' tidak diperlakukan sebagai grup yang berbeda.
import pandas as pd
df = pd.DataFrame({'city': ['new york', 'LOS ANGELES', 'Chicago', 'HOUSTON']})
df['city_lower'] = df['city'].str.lower()
df['city_title'] = df['city'].str.title()
df['city_upper'] = df['city'].str.upper()
print(df[['city_lower', 'city_title']])
# city_lower city_title
# 0 new york New York
# 1 los angeles Los Angeles
# 2 chicago Chicago
# 3 houston HoustonMenghapus Spasi
Spasi di awal dan akhir tidak terlihat dalam tampilan, tetapi menyebabkan perbandingan kecocokan persis gagal secara diam-diam. .str.strip() menghapus spasi dari kedua ujung, .str.lstrip() hanya menghapus dari kiri, dan .str.rstrip() hanya menghapus dari kanan. Anda juga dapat meneruskan karakter tertentu untuk dihapus (misalnya, .str.strip('$') menghapus tanda dolar).
import pandas as pd
df = pd.DataFrame({'code': [' A001 ', '$B002$', ' C003']})
print(df['code'].str.strip()) # 'A001', '$B002$', 'C003'
print(df['code'].str.strip('$ ')) # 'A001', 'B002', 'C003'Memeriksa Panjang dengan .str.len()
.str.len() mengembalikan jumlah karakter dalam setiap elemen string sebagai Series bilangan bulat. Ini berguna untuk validasi—memeriksa bahwa kode produk selalu terdiri dari 5 karakter, nomor telepon memiliki jumlah digit yang benar, atau bidang teks tidak terlalu pendek secara mencurigakan (misalnya, satu karakter yang menunjukkan nilai penanda).
import pandas as pd
df = pd.DataFrame({'sku': ['A001', 'BB02', 'CCC', 'D0005', 'E1']})
df['sku_len'] = df['sku'].str.len()
print(df)
# Rows with unexpected SKU length
bad_skus = df[df['sku_len'] != 4]
print(bad_skus)
# sku sku_len
# 2 CCC 3
# 3 D0005 5
# 4 E1 2Memeriksa Awalan dan Akhiran
.str.startswith() dan .str.endswith() mengembalikan Series boolean. Keduanya merupakan cara paling bersih untuk memfilter baris berdasarkan awal atau akhir nilai string—misalnya, memilih semua ID pesanan yang diawali 'ORD' atau semua nama file yang diakhiri '.csv'. Keduanya juga menerima tuple string untuk memeriksa beberapa awalan atau akhiran sekaligus.
import pandas as pd
df = pd.DataFrame({'file': ['data.csv', 'report.xlsx', 'backup.csv', 'config.json']})
# Filter CSV files
csv_files = df[df['file'].str.endswith('.csv')]
print(csv_files)
# file
# 0 data.csv
# 2 backup.csv
# Multiple suffixes
spreadsheets = df[df['file'].str.endswith(('.csv', '.xlsx'))]
print(spreadsheets.shape) # (3, 1).str.contains() untuk Pencarian Substring
.str.contains(pattern) mengembalikan Series boolean yang menunjukkan apakah setiap elemen berisi pola yang diberikan. Secara default, fungsi ini menerima ekspresi reguler, tetapi Anda dapat meneruskan regex=False untuk pencarian substring literal. Argumen na=False memperlakukan NaN sebagai tidak cocok, alih-alih meneruskan NaN ke hasil.
import pandas as pd
df = pd.DataFrame({
'description': ['Red apple', 'Green banana', 'Red cherry', None, 'Blue grape']
})
# Find rows containing 'Red' (case-sensitive)
mask = df['description'].str.contains('Red', na=False)
print(df[mask])
# description
# 0 Red apple
# 2 Red cherryPerilaku NaN dalam Metode .str
Saat sebuah Series berisi nilai NaN, sebagian besar metode .str secara default meneruskan NaN—metode tersebut mengembalikan NaN pada posisi yang hilang dalam Series output. Metode yang mengembalikan nilai boolean (seperti .str.contains()) secara default mengembalikan NaN pada posisi yang hilang, yang dapat menimbulkan masalah pada pengindeksan boolean. Gunakan na=False untuk memperlakukan NaN sebagai tidak cocok, atau na=True untuk memperlakukannya sebagai cocok.
import pandas as pd
import numpy as np
s = pd.Series(['hello', None, 'world', np.nan])
# Default: NaN propagates
print(s.str.upper())
# 0 HELLO
# 1 None
# 2 WORLD
# 3 NaN
# contains with na=False: NaN treated as non-matching
print(s.str.contains('o', na=False))
# 0 True
# 1 False
# 2 True
# 3 False.str.count() untuk Frekuensi Pola
.str.count(pattern) menghitung berapa kali suatu pola muncul dalam setiap elemen string. Ini berguna untuk rekayasa fitur dalam pemrosesan bahasa alami—misalnya, menghitung berapa kali sebuah kata muncul, berapa banyak digit yang terdapat dalam string, atau berapa banyak koma yang memisahkan nilai dalam bidang dengan pembatas.
import pandas as pd
df = pd.DataFrame({'text': ['hello world', 'foo bar baz', 'a b c d e']})
# Count number of words (spaces + 1)
df['word_count'] = df['text'].str.count(' ') + 1
print(df)
# text word_count
# 0 hello world 2
# 1 foo bar baz 3
# 2 a b c d e 5Merangkai Metode .str
Karena setiap metode .str mengembalikan Series baru, Anda dapat merangkai beberapa operasi string dalam satu expression. Ini adalah cara paling rapi untuk menerapkan beberapa langkah pembersihan pada kolom teks: menghapus spasi, mengubah menjadi huruf kecil, dan menghapus karakter khusus — semuanya dalam satu baris yang mudah dibaca. Rangkaian ini dievaluasi dari kiri ke kanan, dengan setiap langkah meneruskan hasilnya ke langkah berikutnya.
import pandas as pd
df = pd.DataFrame({'tag': [' Python ', ' DATA-SCIENCE ', ' Machine_Learning !']})
df['tag_clean'] = (
df['tag']
.str.strip()
.str.lower()
.str.replace('[-_!]', ' ', regex=True)
.str.strip()
)
print(df)
# tag tag_clean
# 0 Python python
# 1 DATA-SCIENCE data science
# 2 Machine_Learning ! machine learningMengindeks Karakter dengan .str[]
Notasi .str[n] mengambil karakter pada posisi n dari setiap string, sedangkan .str[start:end] mengambil potongan substring. Ini adalah pengindeksan tervectorisasi ke dalam string, yang berguna untuk mengambil kode dengan lebar tetap seperti awalan kode pos, digit tahun dari string tanggal, atau huruf pertama nama.
import pandas as pd
df = pd.DataFrame({'code': ['NYC-001', 'LAX-042', 'ORD-018']})
# Extract city code (first 3 chars)
df['city'] = df['code'].str[:3]
# Extract numeric part (chars 4 onwards)
df['num'] = df['code'].str[4:]
print(df)
# code city num
# 0 NYC-001 NYC 001
# 1 LAX-042 LAX 042
# 2 ORD-018 ORD 018Pembersihan Praktis dengan .str
Berikut adalah pipeline pembersihan teks yang realistis untuk kolom nama produk yang diambil dari halaman web. Pipeline ini menggabungkan penghapusan spasi, normalisasi huruf besar-kecil, penghapusan tanda baca, dan penggabungan spasi — urutan prapemrosesan standar dalam tugas NLP atau pembersihan data.
import pandas as pd
df = pd.DataFrame({
'product': [' Apple iPhone 15!!', 'samsung GALAXY s24 ', ' Google Pixel 8 Pro ']
})
df['product_clean'] = (
df['product']
.str.strip()
.str.title()
.str.replace('[^A-Za-z0-9 ]', '', regex=True) # remove punctuation
.str.replace(r'\s+', ' ', regex=True) # collapse extra spaces
.str.strip()
)
print(df['product_clean'].tolist())
# ['Apple Iphone 15', 'Samsung Galaxy S24', 'Google Pixel 8 Pro']Pemeriksaan Singkat
Uji pemahaman Anda tentang pengakses .str.
Ringkasan Pelajaran
Dalam pelajaran ini, Anda mempelajari bahwa pengakses .str menyediakan metode string tervectorisasi pada Series Pandas, termasuk lower/upper/strip untuk normalisasi, startswith/endswith/contains untuk penyaringan, dan len/count untuk pengukuran. Rangkai beberapa pemanggilan .str untuk membangun pipeline pembersihan yang mudah dibaca. Gunakan na=False jika terdapat nilai NaN. Selanjutnya, Anda akan memisahkan dan mengganti string untuk melakukan transformasi yang lebih lanjut.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Akses .str” gratis?
Ya — teks lengkap “Akses .str” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Akses .str”?
Akses metode string pada Series menggunakan .str dan terapkan lower(), upper(), strip(), serta len() pada semua nilai. Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?
Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Akses .str” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?
Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Akses .str
- Memisahkan dan Mengganti String
- Pencocokan Pola dengan Regex
- Menggabungkan dan Membersihkan Kolom Teks