Python loại bỏ các ký tự không phải chữ và số
Đây là một blogpost ngắn. Tôi muốn ghi lại công thức này vì lợi ích của riêng tôi và hy vọng nó sẽ giúp ích cho những người khác. Tôi đang làm việc với một tập dữ liệu rất lộn xộn với một số cột chứa các ký tự không phải chữ và số như #,. ,$^*) và thậm chí cả biểu tượng cảm xúc Show numpy có hai phương thức df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})2 và df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})3 df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})2 trả về True nếu tất cả các ký tự là chữ và số, i. e. chữ và số. tài liệu df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})3 trả về True nếu tất cả các ký tự là bảng chữ cái (chỉ bảng chữ cái, không có số). tài liệu import numpy as np import pandas as pd df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']}) df
col0abc1a b c2a_b_c3#$#$abc4abc1115abc111#@$@6abc. 1237ABC Xóa ký hiệu và trả về chữ và sốdef alphanum(element): return "".join(filter(str.isalnum, element)) ________số 8 df
colalphanum0abcabc1a b cabc2a_b_cabc3#$#$abcabc4abc111abc1115abc111#@$@abc1116abc. 123abc1237ABCABC Xóa các ký hiệu & số và chỉ trả về bảng chữ cáidf = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})0 df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})1 colalphanumalphabets0abcabcabc1a b cabcabc2a_b_cabcabc3#$#$abcabcabc4abc111abc111abc5abc111#@$@abc111abc6abc. 123abc123abc7ABCABCABC Thưởng. Xóa các ký hiệu & ký tự và chỉ trả lại sốdf = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})2 df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})3 colalphanumalphabetsnum0abcabcabc1a b cabcabc2a_b_cabcabc3#$#$abcabcabc4abc111abc111abc1115abc111#@$@abc111abc1116abc. 123abc123abc1237ABCABCABC df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})0 df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})1 Lưu ý rằng cột df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})6 được trả về dưới dạng df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})7 (i. e. chuỗi) chứ không phải số, vì vậy hãy đảm bảo chuyển đổi nó thành df = pd.DataFrame({'col':['abc', 'a b c', 'a_b_c', '#$#$abc', 'abc111', 'abc111#@$@', ' abc !!! 123', 'ABC']})8 Làm cách nào để xóa tất cả các ký tự không phải chữ cái khỏi một chuỗi trong Python?sub() để xóa tất cả các ký tự không thuộc bảng chữ cái khỏi một chuỗi, e. g. new_str = lại. sub(r'[^a-zA-Z]', '', my_str) . Ở đó. phương thức sub() sẽ xóa tất cả các ký tự không phải là chữ cái khỏi chuỗi bằng cách thay thế chúng bằng chuỗi rỗng.
Làm cách nào để xóa các ký tự chữ và số trong Python bằng regex?Chúng ta cũng có thể làm điều này bằng cách sử dụng các biểu thức chính quy và isalpha(), isnumeric() . Quan trọng nhất, chúng tôi sử dụng isalnum() vì đây là cách dễ nhất để xóa các phần tử chữ và số khỏi danh sách. |