Python Pandas - Metin Verileriyle Çalışma

Bu bölümde, dizi işlemlerini temel Seri / Dizinimiz ile tartışacağız. Sonraki bölümlerde, bu dizi işlevlerini DataFrame'e nasıl uygulayacağımızı öğreneceğiz.

Pandas, dizi verileri üzerinde çalışmayı kolaylaştıran bir dizi dizi işlevi sağlar. En önemlisi, bu işlevler eksik / NaN değerlerini yok sayar (veya hariç tutar).

Neredeyse, bu yöntemlerin tümü Python dize işlevleriyle çalışır (bakın: https://docs.python.org/3/library/stdtypes.html#string-methods). Yani, Series Object'i String Object'e dönüştürün ve ardından işlemi gerçekleştirin.

Şimdi her işlemin nasıl performans gösterdiğini görelim.

Sr.No İşlev ve Açıklama
1

lower()

Seri / Dizindeki dizeleri küçük harfe dönüştürür.

2

upper()

Seri / Dizindeki dizeleri büyük harfe dönüştürür.

3

len()

Dize uzunluğunu () hesaplar.

4

strip()

Seri / dizindeki her dizeden her iki taraftan beyaz boşlukları (yeni satır dahil) çıkarmaya yardımcı olur.

5

split(' ')

Her dizeyi verilen desenle böler.

6

cat(sep=' ')

Seri / dizin öğelerini verilen ayırıcıyla birleştirir.

7

get_dummies()

DataFrame'i One-Hot Encoded değerlerle döndürür.

8

contains(pattern)

Alt dizge öğede içeriyorsa, her öğe için bir Boolean değeri True, aksi takdirde False döndürür.

9

replace(a,b)

Değeri değiştirir a değeri ile b.

10

repeat(value)

Her bir öğeyi belirtilen sayıda yineler.

11

count(pattern)

Her öğedeki desenin görünme sayısını döndürür.

12

startswith(pattern)

Seri / Dizindeki öğe desenle başlıyorsa doğru döndürür.

13

endswith(pattern)

Seri / Dizindeki öğe desenle biterse true döndürür.

14

find(pattern)

Desenin ilk oluşumunun ilk konumunu döndürür.

15

findall(pattern)

Modelin tüm oluşumlarının bir listesini döndürür.

16

swapcase

Küçük / büyük harfleri değiştirir.

17

islower()

Seri / Dizindeki her dizedeki tüm karakterlerin küçük harf olup olmadığını kontrol eder. Boole değerini döndürür

18

isupper()

Seri / Dizin içindeki her dizedeki tüm karakterlerin büyük harf olup olmadığını kontrol eder. Boolean'ı döndürür.

19

isnumeric()

Seri / Dizindeki her dizedeki tüm karakterlerin sayısal olup olmadığını kontrol eder. Boolean'ı döndürür.

Şimdi bir Seri oluşturalım ve yukarıdaki tüm fonksiyonların nasıl çalıştığını görelim.

import pandas as pd
import numpy as np

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])

print s

Onun output aşağıdaki gibidir -

0            Tom
1   William Rick
2           John
3        Alber@t
4            NaN
5           1234
6    Steve Smith
dtype: object

daha düşük ()

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()

Onun output aşağıdaki gibidir -

0            tom
1   william rick
2           john
3        alber@t
4            NaN
5           1234
6    steve smith
dtype: object

üst()

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()

Onun output aşağıdaki gibidir -

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()

Onun output aşağıdaki gibidir -

0    3.0
1   12.0
2    4.0
3    7.0
4    NaN
5    4.0
6   10.0
dtype: float64

şerit ()

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()

Onun output aşağıdaki gibidir -

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

bölünme (desen)

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(' ')

Onun output aşağıdaki gibidir -

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

kedi (sep = desen)

import pandas as pd
import numpy as np

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.cat(sep='_')

Onun output aşağıdaki gibidir -

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()

Onun output aşağıdaki gibidir -

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

içerir ()

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.contains(' ')

Onun output aşağıdaki gibidir -

0   True
1   True
2   False
3   False
dtype: bool

değiştir (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('@','$')

Onun output aşağıdaki gibidir -

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

tekrar (değer)

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.repeat(2)

Onun output aşağıdaki gibidir -

0   Tom            Tom
1   William Rick   William Rick
2                  JohnJohn
3                  Alber@tAlber@t
dtype: object

sayım (desen)

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')

Onun output aşağıdaki gibidir -

The number of 'm's in each string:
0    1
1    1
2    0
3    0

startswith (desen)

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print ("Strings that start with 'T':")
print s.str. startswith ('T')

Onun output aşağıdaki gibidir -

0  True
1  False
2  False
3  False
dtype: bool

endswith (desen)

import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print ("Strings that end with 't':")
print s.str.endswith('t')

Onun output aşağıdaki gibidir -

Strings that end with 't':
0  False
1  False
2  False
3  True
dtype: bool

bul (desen)

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.find('e')

Onun output aşağıdaki gibidir -

0  -1
1  -1
2  -1
3   3
dtype: int64

"-1", öğede böyle bir model olmadığını gösterir.

findall (desen)

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.findall('e')

Onun output aşağıdaki gibidir -

0 []
1 []
2 []
3 [e]
dtype: object

Boş liste ([]), öğede böyle bir model olmadığını gösterir.

takas kutusu ()

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.swapcase()

Onun output aşağıdaki gibidir -

0  tOM
1  wILLIAM rICK
2  jOHN
3  aLBER@T
dtype: object

islower ()

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.islower()

Onun output aşağıdaki gibidir -

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()

Onun output aşağıdaki gibidir -

0  False
1  False
2  False
3  False
dtype: bool

isnumeric ()

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])

print s.str.isnumeric()

Onun output aşağıdaki gibidir -

0  False
1  False
2  False
3  False
dtype: bool