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