Tôi có một cột DF có nhiều chuỗi trong đó. Tôi cần xóa tất cả các ký tự số không phải alpha khỏi cột đó. tôi. e
df['strings'] = ["a#bc1!","a[b$c"]
Mã vận hành
Print[df['strings']]: ['abc','abc']
tôi đã thử
df['strings'].replace[[',','.','/','"',':',';','!','@','#','$','%',"'","*","[","]","&",],""]
Nhưng điều này không hiệu quả và tôi cảm thấy rằng nên có một cách hiệu quả hơn để thực hiện việc này bằng cách sử dụng regex. Bất kỳ trợ giúp sẽ được rất đánh giá cao
Giải pháp tốt nhất
Sử dụng str.replace
df
strings
0 a#bc1!
1 a[b$c
df.strings.str.replace['[^a-zA-Z]', '']
0 abc
1 abc
Name: strings, dtype: object
Để giữ lại các ký tự chữ và số [không chỉ bảng chữ cái như đầu ra dự kiến của bạn gợi ý], bạn sẽ cần
df.strings.str.replace['\W', '']
0 abc1
1 abc
Name: strings, dtype: object
Giải pháp liên quan
Python – Cách xóa phần tử khỏi danh sách theo chỉ mục
Sử dụng
Print[df['strings']]: ['abc','abc']
0 và chỉ định chỉ mục của phần tử bạn muốn xóa>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del a[-1]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8]
Cũng hỗ trợ lát
>>> del a[2:4]
>>> a
[0, 1, 4, 5, 6, 7, 8, 9]
là phần từ hướng dẫn
R - Cách sắp xếp một khung dữ liệu theo nhiều cột
Bạn có thể sử dụng trực tiếp hàm
Print[df['strings']]: ['abc','abc']
1 mà không cần dùng đến các công cụ bổ sung -- xem câu trả lời đơn giản hơn này sử dụng một mẹo ngay từ đầu mã Print[df['strings']]: ['abc','abc']
2R> dd[with[dd, order[-z, b]], ]
b x y z
4 Low C 9 2
2 Med D 3 1
1 Hi A 8 1
3 Hi A 9 1
Chỉnh sửa khoảng hơn 2 năm sau. Nó chỉ được hỏi làm thế nào để làm điều này theo chỉ số cột. Câu trả lời là chỉ cần chuyển [các] cột sắp xếp mong muốn cho hàm
Print[df['strings']]: ['abc','abc']
1 Trong hướng dẫn này, chúng ta sẽ xem xét cách xóa các ký tự không phải chữ và số khỏi một chuỗi trong Python với sự trợ giúp của một số ví dụ
Các ký tự chữ và số là gì?
Một ký tự là một ký tự chữ và số nếu đó là một bảng chữ cái [a đến z, A đến Z] hoặc một chữ số [0 đến 9]. Ví dụ: chuỗi striker123
chỉ chứa các ký tự chữ và số trong khi chuỗi striker_123
chứa một ký tự không phải chữ và số ['_'
]
đầu ra
Striker123
Bạn có thể thấy rằng chuỗi kết quả không có bất kỳ ký tự nào không phải chữ và số. Ở đây, chúng tôi lặp lại tất cả các ký tự trong chuỗi gốc và chỉ giữ lại ký tự đó nếu đó là ký tự chữ và số mà chúng tôi kiểm tra bằng hàm chuỗi isalnum[]
. Sau đó, chúng tôi sử dụng hàm chuỗi
True True True False False1 để nối từng ký tự
Sử dụng biểu thức chính quy để xóa các ký tự không phải chữ và số
Chúng ta cũng có thể sử dụng các biểu thức chính quy để loại bỏ các ký tự như vậy. Ví dụ: chúng ta có thể viết một biểu thức chính quy để khớp với tất cả các ký tự không phải chữ và số trong chuỗi và sau đó thay thế chúng bằng một chuỗi rỗng. Bạn có thể sử dụng thư viện
True True True False False6 trong Python để triển khai khớp mẫu biểu thức chính quy
import re # string with non alphanumeric characters s = "[email protected]#$_123" # remove non alphanuemeric characters new_s = re.sub[r'[^a-zA-Z0-9]', '', s] print[new_s]
đầu ra
Striker123
Chúng tôi nhận được kết quả tương tự như trên
Để biết thêm về các biểu thức chính quy trong Python, hãy tham khảo hướng dẫn này
Bạn cũng có thể quan tâm đến -
- Xóa ký tự đầu tiên khỏi chuỗi trong Python
- Xóa ký tự cuối cùng khỏi chuỗi trong Python
Đăng ký nhận bản tin của chúng tôi để biết thêm thông tin hướng dẫn và hướng dẫn
Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào
Tác giả
Piyush Raj
Piyush là một chuyên gia dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trước đây, anh ấy từng là Nhà khoa học dữ liệu cho ZS và có bằng kỹ sư của IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trong các dự án phụ
Làm cách nào để xóa các ký tự không phải là số khỏi Khung dữ liệu Python?
Vì vậy, để xóa tất cả các ký tự không phải là số khỏi một cột trong pandas. Sau khi tạo khung dữ liệu, hãy sử dụng Sê-ri. str. phương thức replace[] để thay thế các ký tự không phải là số .Làm cách nào để xóa các ký tự không phải chữ và số khỏi chuỗi trong Python?
Xóa các ký tự không phải chữ và số khỏi chuỗi Python .Sử dụng biểu thức chính quy. Một giải pháp đơn giản là sử dụng các biểu thức chính quy để xóa các ký tự không phải chữ và số khỏi chuỗi. .Sử dụng hàm isalnum[]. Một tùy chọn khác là lọc chuỗi khớp với hàm isalnum[]Làm cách nào để xóa các ký tự đặc biệt khỏi cột khung dữ liệu trong Python?
Thêm df = df. astype[float] sau khi thay thế và bạn đã có nó. Tôi sẽ bỏ qua inplace và chỉ làm df = df. replace['\*', '', regex=True] .Làm cách nào để kiểm tra xem giá trị cột có phải là chữ và số trong gấu trúc không?
Pandas str. phương thức isalpha[] được sử dụng để kiểm tra xem tất cả các ký tự trong mỗi chuỗi trong chuỗi có phải là chữ cái không [a-z/A-Z]. Khoảng trắng hoặc bất kỳ ký tự nào khác xuất hiện trong chuỗi sẽ trả về false, nhưng nếu có một giá trị số hoàn chỉnh thì nó sẽ trả về NaN.