Hướng dẫn python replace special characters in column - python thay thế các ký tự đặc biệt trong cột
Các tài liệu trên 9 nói rằng bạn phải cung cấp một từ điển lồng nhau: Cấp độ đầu tiên là tên cột mà bạn phải cung cấp từ điển thứ hai với các cặp thay thế.nested dictionary: the first level is the column name for which you have to provide a second dictionary with substitution pairs. Show Vì vậy, điều này sẽ hoạt động:
Chỉnh sửa. Có vẻ như 0 also accepts non-nested translation dictionary. In
that case, the problem is probably with character encoding, particularly if you use Python 2. Assuming your CSV load function decoded the file characters properly (as true Unicode code-points), then you should take care your translation/substitution dictionary is also defined with Unicode characters, like this:
Nếu bạn có một định nghĩa như thế này (và sử dụng Python 2):
Sau đó, các phím thực tế trong từ điển đó là các chuỗi multibyte. Mà byte (ký tự) chúng phụ thuộc vào mã hóa ký tự tệp thực tế được sử dụng, nhưng giả sử bạn sử dụng UTF-8, bạn sẽ nhận được:
Và điều đó sẽ giải thích tại sao 0 không thay thế các ký tự đó. Vì vậy, hãy chắc chắn sử dụng các chữ unicode trong Python 2: 2.Mặt khác, trong Python 3, tất cả các chuỗi đều là chuỗi unicode và bạn không phải sử dụng tiền tố 3 (thực tế là loại ____24 từ Python 2 được đổi tên thành 5 trong Python 3, và 5 cũ từ Python 2 là Bây giờ 7 trong Python 3).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ế:
Thay thế một ký tự cụ thể trong một cột DataFrame duy nhấtHã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:
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,: 0Thay 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: 1Bâ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,): 2Thay 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: 3Và đây là cách mà DataFrame mới sẽ trông như thế nào: 4Sau đó, 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,: 5Bây giờ bạn sẽ thấy các ký tự mới được thay thế trong cột ‘First_set,: 6Ngoà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: 7Đây là kết quả: 8Bạ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. |