Python Pandas - Bekerja dengan Data Teks
Dalam bab ini, kita akan membahas operasi string dengan Seri / Indeks dasar kita. Pada bab-bab berikutnya, kita akan belajar bagaimana menerapkan fungsi string ini pada DataFrame.
Pandas menyediakan sekumpulan fungsi string yang memudahkan pengoperasian pada data string. Yang terpenting, fungsi ini mengabaikan (atau mengecualikan) nilai / NaN yang hilang.
Hampir, semua metode ini bekerja dengan fungsi string Python (lihat: https://docs.python.org/3/library/stdtypes.html#string-methods). Jadi, ubah Objek Seri ke Objek String dan kemudian lakukan operasi.
Sekarang mari kita lihat bagaimana kinerja setiap operasi.
Sr Tidak | Deskripsi fungsi |
---|---|
1 | lower() Mengonversi string dalam Seri / Indeks ke huruf kecil. |
2 | upper() Mengonversi string dalam Seri / Indeks ke huruf besar. |
3 | len() Menghitung panjang string (). |
4 | strip() Membantu menghapus spasi (termasuk baris baru) dari setiap string di Seri / indeks dari kedua sisi. |
5 | split(' ') Pisahkan setiap senar dengan pola yang diberikan. |
6 | cat(sep=' ') Menggabungkan elemen seri / indeks dengan pemisah yang diberikan. |
7 | get_dummies() Mengembalikan DataFrame dengan nilai One-Hot Encoded. |
8 | contains(pattern) Mengembalikan nilai Boolean True untuk setiap elemen jika substring berisi dalam elemen, jika tidak False. |
9 | replace(a,b) Mengganti nilai a dengan nilai b. |
10 | repeat(value) Mengulangi setiap elemen dengan jumlah waktu tertentu. |
11 | count(pattern) Mengembalikan hitungan kemunculan pola di setiap elemen. |
12 | startswith(pattern) Mengembalikan nilai benar jika elemen dalam Seri / Indeks dimulai dengan pola. |
13 | endswith(pattern) Mengembalikan nilai benar jika elemen dalam Seri / Indeks diakhiri dengan pola. |
14 | find(pattern) Mengembalikan posisi pertama kemunculan pertama pola. |
15 | findall(pattern) Menampilkan daftar semua kemunculan pola. |
16 | swapcase Menukar casing ke bawah / atas. |
17 | islower() Memeriksa apakah semua karakter di setiap string di Seri / Indeks dalam huruf kecil atau tidak. Mengembalikan Boolean |
18 | isupper() Memeriksa apakah semua karakter di setiap string di Seri / Indeks dalam huruf besar atau tidak. Mengembalikan Boolean. |
19 | isnumeric() Memeriksa apakah semua karakter di setiap string dalam Seri / Indeks adalah numerik. Mengembalikan Boolean. |
Mari kita sekarang membuat Seri dan melihat bagaimana semua fungsi di atas bekerja.
import pandas as pd
import numpy as np
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
print s
Nya output adalah sebagai berikut -
0 Tom
1 William Rick
2 John
3 Alber@t
4 NaN
5 1234
6 Steve Smith
dtype: object
menurunkan()
import pandas as pd
import numpy as np
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
print s.str.lower()
Nya output adalah sebagai berikut -
0 tom
1 william rick
2 john
3 alber@t
4 NaN
5 1234
6 steve smith
dtype: object
atas()
import pandas as pd
import numpy as np
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
print s.str.upper()
Nya output adalah sebagai berikut -
0 TOM
1 WILLIAM RICK
2 JOHN
3 ALBER@T
4 NaN
5 1234
6 STEVE SMITH
dtype: object
len ()
import pandas as pd
import numpy as np
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
print s.str.len()
Nya output adalah sebagai berikut -
0 3.0
1 12.0
2 4.0
3 7.0
4 NaN
5 4.0
6 10.0
dtype: float64
mengupas()
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s
print ("After Stripping:")
print s.str.strip()
Nya output adalah sebagai berikut -
0 Tom
1 William Rick
2 John
3 Alber@t
dtype: object
After Stripping:
0 Tom
1 William Rick
2 John
3 Alber@t
dtype: object
perpecahan (pola)
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s
print ("Split Pattern:")
print s.str.split(' ')
Nya output adalah sebagai berikut -
0 Tom
1 William Rick
2 John
3 Alber@t
dtype: object
Split Pattern:
0 [Tom, , , , , , , , , , ]
1 [, , , , , William, Rick]
2 [John]
3 [Alber@t]
dtype: object
kucing (sep = pola)
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.cat(sep='_')
Nya output adalah sebagai berikut -
Tom _ William Rick_John_Alber@t
get_dummies ()
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.get_dummies()
Nya output adalah sebagai berikut -
William Rick Alber@t John Tom
0 0 0 0 1
1 1 0 0 0
2 0 0 1 0
3 0 1 0 0
mengandung ()
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.contains(' ')
Nya output adalah sebagai berikut -
0 True
1 True
2 False
3 False
dtype: bool
ganti (a, b)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s
print ("After replacing @ with $:")
print s.str.replace('@','$')
Nya output adalah sebagai berikut -
0 Tom
1 William Rick
2 John
3 Alber@t
dtype: object
After replacing @ with $:
0 Tom
1 William Rick
2 John
3 Alber$t
dtype: object
ulangi (nilai)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.repeat(2)
Nya output adalah sebagai berikut -
0 Tom Tom
1 William Rick William Rick
2 JohnJohn
3 Alber@tAlber@t
dtype: object
hitungan (pola)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print ("The number of 'm's in each string:")
print s.str.count('m')
Nya output adalah sebagai berikut -
The number of 'm's in each string:
0 1
1 1
2 0
3 0
startswith (pola)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print ("Strings that start with 'T':")
print s.str. startswith ('T')
Nya output adalah sebagai berikut -
0 True
1 False
2 False
3 False
dtype: bool
ujung (pola)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print ("Strings that end with 't':")
print s.str.endswith('t')
Nya output adalah sebagai berikut -
Strings that end with 't':
0 False
1 False
2 False
3 True
dtype: bool
temukan (pola)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.find('e')
Nya output adalah sebagai berikut -
0 -1
1 -1
2 -1
3 3
dtype: int64
"-1" menunjukkan bahwa tidak ada pola seperti itu yang tersedia di elemen.
findall (pola)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.findall('e')
Nya output adalah sebagai berikut -
0 []
1 []
2 []
3 [e]
dtype: object
Daftar kosong ([]) menunjukkan bahwa tidak ada pola seperti itu yang tersedia di elemen.
swapcase ()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.swapcase()
Nya output adalah sebagai berikut -
0 tOM
1 wILLIAM rICK
2 jOHN
3 aLBER@T
dtype: object
lebih rendah()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.islower()
Nya output adalah sebagai berikut -
0 False
1 False
2 False
3 False
dtype: bool
isupper ()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.isupper()
Nya output adalah sebagai berikut -
0 False
1 False
2 False
3 False
dtype: bool
isnumerik ()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.isnumeric()
Nya output adalah sebagai berikut -
0 False
1 False
2 False
3 False
dtype: bool