Python Pandas - Làm việc với dữ liệu văn bản

Trong chương này, chúng tôi sẽ thảo luận về các hoạt động chuỗi với Chuỗi / Chỉ mục cơ bản của chúng tôi. Trong các chương tiếp theo, chúng ta sẽ học cách áp dụng các hàm chuỗi này trên DataFrame.

Pandas cung cấp một tập hợp các hàm chuỗi giúp dễ dàng thao tác trên dữ liệu chuỗi. Quan trọng nhất, các hàm này bỏ qua (hoặc loại trừ) các giá trị bị thiếu / NaN.

Hầu như, tất cả các phương pháp này đều hoạt động với các hàm chuỗi Python (tham khảo: https://docs.python.org/3/library/stdtypes.html#string-methods). Vì vậy, hãy chuyển đổi Đối tượng chuỗi thành Đối tượng chuỗi và sau đó thực hiện thao tác.

Bây giờ chúng ta hãy xem mỗi hoạt động thực hiện như thế nào.

Sr.No Mô tả chức năng
1

lower()

Chuyển đổi các chuỗi trong Chuỗi / Chỉ mục thành chữ thường.

2

upper()

Chuyển đổi các chuỗi trong Chuỗi / Chỉ mục thành chữ hoa.

3

len()

Tính độ dài chuỗi ().

4

strip()

Giúp loại bỏ khoảng trắng (bao gồm cả dòng mới) từ mỗi chuỗi trong Chuỗi / chỉ mục từ cả hai phía.

5

split(' ')

Tách từng chuỗi với mẫu đã cho.

6

cat(sep=' ')

Nối các phần tử chuỗi / chỉ mục với dấu phân tách đã cho.

7

get_dummies()

Trả về DataFrame với các giá trị được mã hóa một lần.

số 8

contains(pattern)

Trả về giá trị Boolean Đúng cho mỗi phần tử nếu chuỗi con chứa trong phần tử, còn lại Sai.

9

replace(a,b)

Thay thế giá trị a với giá trị b.

10

repeat(value)

Lặp lại từng phần tử với số lần xác định.

11

count(pattern)

Trả về số lần xuất hiện của mẫu trong mỗi phần tử.

12

startswith(pattern)

Trả về true nếu phần tử trong Chuỗi / Chỉ mục bắt đầu bằng mẫu.

13

endswith(pattern)

Trả về true nếu phần tử trong Chuỗi / Chỉ mục kết thúc bằng mẫu.

14

find(pattern)

Trả về vị trí đầu tiên của lần xuất hiện đầu tiên của mẫu.

15

findall(pattern)

Trả về danh sách tất cả các lần xuất hiện của mẫu.

16

swapcase

Hoán đổi chữ hoa / chữ thường.

17

islower()

Kiểm tra xem tất cả các ký tự trong mỗi chuỗi trong Chuỗi / Chỉ mục có viết thường hay không. Trả về Boolean

18

isupper()

Kiểm tra xem tất cả các ký tự trong mỗi chuỗi trong Chuỗi / Chỉ mục có viết hoa hay không. Trả về Boolean.

19

isnumeric()

Kiểm tra xem tất cả các ký tự trong mỗi chuỗi trong Chuỗi / Chỉ mục có phải là số hay không. Trả về Boolean.

Bây giờ chúng ta hãy tạo một Series và xem tất cả các chức năng trên hoạt động như thế nào.

import pandas as pd
import numpy as np

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

print s

Nó là output như sau -

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

thấp hơn()

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

Nó là output như sau -

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

phía trên()

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

Nó là output như sau -

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

Nó là output như sau -

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

dải ()

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

Nó là output như sau -

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

tách (mẫu)

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

Nó là output như sau -

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

mèo (sep = hoa văn)

import pandas as pd
import numpy as np

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

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

Nó là output như sau -

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

Nó là output như sau -

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

chứa đựng ()

import pandas as pd

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

print s.str.contains(' ')

Nó là output như sau -

0   True
1   True
2   False
3   False
dtype: bool

thay thế (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('@','$')

Nó là output như sau -

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

lặp lại (giá trị)

import pandas as pd

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

print s.str.repeat(2)

Nó là output như sau -

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

đếm (mẫu)

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

Nó là output như sau -

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

startwith (mẫu)

import pandas as pd

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

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

Nó là output như sau -

0  True
1  False
2  False
3  False
dtype: bool

endwith (mẫu)

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

Nó là output như sau -

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

tìm (mẫu)

import pandas as pd

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

print s.str.find('e')

Nó là output như sau -

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

"-1" cho biết rằng phần tử không có mẫu như vậy.

findall (mẫu)

import pandas as pd

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

print s.str.findall('e')

Nó là output như sau -

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

Danh sách rỗng ([]) chỉ ra rằng không có sẵn mẫu như vậy trong phần tử.

swapcase ()

import pandas as pd

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

Nó là output như sau -

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

thấp hơn()

import pandas as pd

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

Nó là output như sau -

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

Nó là output như sau -

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

Nó là output như sau -

0  False
1  False
2  False
3  False
dtype: bool