Dưới đây là hai cách để thay thế các ký tự trong các chuỗi trong Pandas DataFrame:
[1] Thay thế ký tự/s trong một cột DataFrame duy nhất:
df['column name'] = df['column name'].str.replace['old character','new character']
[2] Thay thế ký tự/s trong toàn bộ DataFrame:
df = df.replace['old character','new character', regex=True]
Trong hướng dẫn ngắn này, bạn sẽ thấy cách thay thế:
- Ký tự cụ thể trong một cột DataFrame
- Ký tự cụ thể trong toàn bộ khung dữ liệu
- Trình tự các ký tự
Thay thế một ký tự cụ thể trong một cột DataFrame duy nhất
Hãy để tạo ra một khung dữ liệu đơn giản với hai cột có chứa chuỗi:
import pandas as pd colors = {'first_set': ['aa_bb','cc_dd','ee_ff','gg_hh'], 'second_set': ['ii_jj','kk_ll','mm_nn','oo_pp'] } df = pd.DataFrame[colors, columns= ['first_set','second_set']] print [df]
Đây là cách mà DataFrame sẽ như thế nào:
first_set second_set
0 aa_bb ii_jj
1 cc_dd kk_ll
2 ee_ff mm_nn
3 gg_hh oo_pp
Mục tiêu là thay thế ký tự dấu gạch dưới [_ _ _] bằng ký tự ống [|first_set‘ column.
Để đạt được mục tiêu này, bạn sẽ cần thêm cú pháp sau vào mã:
df['first_set'] = df['first_set'].str.replace['_','|']
Vì vậy, mã Python hoàn chỉnh để thực hiện thay thế như sau:
import pandas as pd colors = {'first_set': ['aa_bb','cc_dd','ee_ff','gg_hh'], 'second_set': ['ii_jj','kk_ll','mm_nn','oo_pp'] } df = pd.DataFrame[colors, columns= ['first_set','second_set']] df['first_set'] = df['first_set'].str.replace['_','|'] print [df]
Như bạn có thể thấy, ký tự dấu gạch dưới đã được thay thế bằng một ký tự ống dưới cột ‘First_set,:
first_set second_set
0 aa|bb ii_jj
1 cc|dd kk_ll
2 ee|ff mm_nn
3 gg|hh oo_pp
Thay thế một ký tự cụ thể trong toàn bộ khung dữ liệu
Điều gì sẽ xảy ra nếu bạn muốn thay thế một ký tự cụ thể trong toàn bộ khung dữ liệu?
Ví dụ, hãy để thay thế ký tự dấu gạch dưới bằng một ký tự ống dưới toàn bộ khung dữ liệu.
Trong trường hợp đó, bạn sẽ cần phải áp dụng cú pháp sau:
import pandas as pd colors = {'first_set': ['aa_bb','cc_dd','ee_ff','gg_hh'], 'second_set': ['ii_jj','kk_ll','mm_nn','oo_pp'] } df = pd.DataFrame[colors, columns= ['first_set','second_set']] df = df.replace['_','|', regex=True] print [df]
Bây giờ, bạn sẽ thấy rằng ký tự dấu gạch dưới đã được thay thế bằng một ký tự ống dưới toàn bộ khung dữ liệu [dưới cả hai cột ‘First_set và các cột‘ Second_set,]:
first_set second_set
0 aa|bb ii|jj
1 cc|dd kk|ll
2 ee|ff mm|nn
3 gg|hh oo|pp
Thay thế một chuỗi các ký tự
Hãy nói rằng bạn muốn thay thế một chuỗi các ký tự trong Pandas DataFrame.
Chẳng hạn, giả sử rằng bạn đã tạo một khung dữ liệu mới trong đó bạn muốn thay thế trình tự của _yz_yz_iêu bằng hai đường ống | |
Dưới đây là cú pháp để tạo DataFrame mới:
import pandas as pd colors = {'first_set': ['aa_xyz_bb','cc_xyz_dd','ee_xyz_ff','gg_xyz_hh'], 'second_set': ['ii_xyz_jj','kk_xyz_ll','mm_xyz_nn','oo_xyz_pp'] } df = pd.DataFrame[colors, columns= ['first_set','second_set']] print [df]
Và đây là cách mà DataFrame mới sẽ trông như thế nào:
df = df.replace['old character','new character', regex=True]0
Sau đó, bạn có thể sử dụng mã sau để thay thế trình tự của _xyz_, bằng cách thức | | Trong cột ‘First_set,:
df = df.replace['old character','new character', regex=True]1
Bây giờ bạn sẽ thấy các ký tự mới được thay thế trong cột ‘First_set,:
df = df.replace['old character','new character', regex=True]2
Ngoài ra, bạn có thể áp dụng mã bên dưới để thực hiện các thay đổi trong toàn bộ DataFrame:
df = df.replace['old character','new character', regex=True]3
Đây là kết quả:
df = df.replace['old character','new character', regex=True]4
Bạn có thể tìm hiểu thêm về df.replace bằng cách truy cập tài liệu gấu trúc.