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