Pandas: cara mendapatkan substring dari seluruh kolom


Anda dapat menggunakan sintaks dasar berikut untuk mendapatkan substring dari seluruh kolom di pandas DataFrame:

 df[' some_substring '] = df[' string_column ']. str [1:4]

Contoh khusus ini membuat kolom baru bernama some_substring yang berisi karakter dari posisi 1 hingga 4 di string_column .

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Dapatkan substring seluruh kolom di Pandas

Katakanlah kita memiliki pandas DataFrame berikut yang berisi informasi tentang berbagai tim bola basket:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavericks', 'Warriors', 'Rockets', 'Hornets', 'Lakers'],
                   ' points ': [120, 132, 108, 118, 106]})

#view DataFrame
print (df)

        team points
0 Mavericks 120
1 Warriors 132
2 Rockets 108
3 Hornets 118
4 Lakers 106

Kita dapat menggunakan sintaks berikut untuk membuat kolom baru yang berisi karakter dari kolom tim antara posisi 1 dan 4:

 #create column that extracts characters in positions 1 through 4 in team column
df[' team_substring '] = df[' team ']. str [1:4]

#view updated DataFrame
print (df)

        team points team_substring
0 Mavericks 120 ave
1 Warriors 132 arr
2 Rockets 108 ock
3 Hornets 118 orn
4 Lakers 106 ake

Kolom baru bernama team_substring berisi karakter dari kolom tim antara posisi 1 dan 4.

Perhatikan bahwa jika Anda mencoba menggunakan sintaks ini untuk mengekstrak substring dari kolom numerik, Anda akan menerima kesalahan:

 #attempt to extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. str [:2]

AttributeError: Can only use .str accessor with string values!

Sebagai gantinya, Anda harus terlebih dahulu mengonversi kolom numerik menjadi string menggunakan astype(str) :

 #extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. astype (str). str [:2]

#view updated DataFrame
print (df)

        team points points_substring
0 Mavericks 120 12
1 Warriors 132 13
2 Rockets 108 10
3 Hornets 118 11
4 Lakers 106 10

Kali ini kita berhasil mengekstrak karakter dari posisi 0 hingga 2 dari kolom titik karena kita mengubahnya menjadi string terlebih dahulu.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:

Pandas: Periksa apakah string berisi banyak substring
Pandas: cara menambahkan string ke setiap nilai dalam kolom
Pandas: cara memilih kolom yang berisi string tertentu

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *