Hướng dẫn remove non numeric characters from column python - xóa các ký tự không phải là số khỏi cột python

Tôi có một khung dữ liệu trông như thế này:

     A       B           C
1   red78   square    big235
2   green   circle    small123
3   blue45  triangle  big657

Tôi cần có khả năng xóa các ký tự không phải là số lượng khỏi tất cả các hàng trong cột C để khung dữ liệu của tôi trông giống như:

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657

Tôi đã thử sử dụng các mục sau nhưng nhận được chuỗi dự kiến ​​hoặc bộ đệm:

import re
dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)

Thay vào đó tôi nên làm gì?

Mã để tạo DataFrame:

dfObject = pd.DataFrame()
dfObject.set_value(1, 'A', 'red78')
dfObject.set_value(1, 'B', 'square')
dfObject.set_value(1, 'C', 'big235')
dfObject.set_value(2, 'A', 'green')
dfObject.set_value(2, 'B', 'circle')
dfObject.set_value(2, 'C', 'small123')
dfObject.set_value(3, 'A', 'blue45')
dfObject.set_value(3, 'B', 'triangle')
dfObject.set_value(3, 'C', 'big657')

Python Pandas Xóa các ký tự không phải là số lượng khỏi nhiều cột với các ví dụ mã

Với tác phẩm này, chúng ta sẽ xem xét một vài ví dụ khác nhau về Python Pandas loại bỏ các ký tự không phải là số lượng khỏi nhiều vấn đề trong ngôn ngữ máy tính.

# Convert multiple columns to float when they contain non-numeric characters e.g. "R 5 000.00" -> 5000.00
df[['A','B','C','D']] = df[['A','B','C','D']].replace(regex=[r'\D+'], value="").astype(float)

Chúng tôi đã có thể hiểu cách sửa các gấu trúc Python loại bỏ các ký tự không phải là số lượng từ nhiều vấn đề về nhiều cột nhờ nhiều ví dụ.

Làm cách nào để loại bỏ các ký tự không phải là số gấu trúc?

Sử dụng Re. Phương thức phụ Kết quả = Re. sub (r '[^0-9]', '', my_str) .15-Aug-2022

Làm cách nào để loại bỏ các ký tự không phải là số từ danh sách trong Python?

Sử dụng Re. Phương thức phụ từ một chuỗi, ví dụ: Kết quả = Re. Sub (r '[^0-9.] 15-Aug-2022

Làm thế nào để tôi thoát khỏi NA trong gấu trúc?

Hàm dropna gấu trúc

  • Cú pháp: pandas.dataframe.dropna (trục = 0, How = 'Any', Thresh = none, SUBMET = none, inplace = false)
  • Mục đích: Để loại bỏ các giá trị bị thiếu khỏi DataFrame.
  • Tham số: trục: 0 hoặc 1 (mặc định: 0).
  • Trả về: Nếu tại chỗ được đặt thành 'true' thì không có. Nếu nó được đặt thành 'false', thì một khung dữ liệu.

Làm thế nào để tôi thoát khỏi Nan và Inf trong gấu trúc?

thay thế (), thay thế các giá trị vô hạn bằng các giá trị NAN và sau đó sử dụng gấu trúc. Khung dữ liệu. Phương thức dropna () để loại bỏ các hàng bằng nan, null/không có giá trị.01-feb-2022

Làm cách nào để loại bỏ tất cả các ký tự đặc biệt khỏi một chuỗi trong Python?

Sử dụng 're. sub () '

  • Mùi [^a-za-z0
  • Tất cả các ký tự được khớp sẽ được thay thế bằng một chuỗi trống.
  • Tất cả các ký tự ngoại trừ bảng chữ cái và số được xóa.

Làm thế nào để bạn loại bỏ một ký tự khỏi một chuỗi trong Python?

Bạn có thể xóa một ký tự khỏi chuỗi python bằng cách sử dụng thay thế () hoặc dịch (). Cả hai phương thức này thay thế một ký tự hoặc chuỗi bằng một giá trị đã cho. Nếu một chuỗi trống được chỉ định, ký tự hoặc chuỗi bạn chọn sẽ bị xóa khỏi chuỗi mà không cần thay thế.17-Dec-2020

Làm cách nào để loại bỏ các ký tự không bảng chữ cái khỏi chuỗi?

Cách tiếp cận là sử dụng chuỗi. Phương pháp thay thế để thay thế tất cả các ký tự không phải là số đồngumeric bằng một chuỗi trống.19-sept-2022

Làm thế nào để bạn tìm thấy một nhân vật không phải là tổng số trong Python?

Phương thức chuỗi python isalnum () Phương thức isalnum () trả về true nếu tất cả các ký tự là chữ và số, có nghĩa là chữ cái bảng chữ cái (a-z) và số (0-9). Ví dụ về các ký tự không phải là chữ và số: (không gian)!

Làm cách nào để xóa các chữ số khỏi chuỗi?

  • Nhận chuỗi để xóa tất cả các chữ số.
  • Chuyển đổi chuỗi đã cho thành một mảng ký tự.
  • Khởi tạo một chuỗi trống lưu trữ kết quả.
  • Đi qua mảng ký tự từ đầu đến cuối.
  • Kiểm tra xem ký tự được chỉ định không phải là chữ số thì thêm ký tự này vào biến kết quả.
  • Bây giờ, in kết quả.

Làm thế nào để bạn loại bỏ các giá trị Na khỏi một cột trong Python?

Hàm dropna () được sử dụng để loại bỏ các giá trị bị thiếu. Xác định xem các hàng hoặc cột có chứa các giá trị bị thiếu được gỡ bỏ. 0 hoặc 'chỉ mục': thả các hàng có chứa các giá trị bị thiếu. 1 hoặc 'cột': các cột thả chứa giá trị bị thiếu.19-Aug-2022

Xóa các ký tự không phải là số ngoại trừ "." trong Python #

Sử dụng phương thức

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
1 để xóa tất cả các ký tự không phải là số ngoại trừ DOT
     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
2 khỏi chuỗi, ví dụ:
     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
3. Phương pháp
     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
1 sẽ loại bỏ tất cả các ký tự không phải là số từ chuỗi bằng cách thay thế chúng bằng các chuỗi trống.

Copied!

import re my_str = 'a3.1b4c' result = re.sub(r'[^0-9.]', '', my_str) print(result) # 👉️ '3.14'

Nếu bạn đang tìm cách tránh sử dụng các biểu thức thông thường, hãy cuộn xuống tiêu đề tiếp theo.

Chúng tôi đã sử dụng phương thức

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
1 để loại bỏ tất cả các ký tự không phải là dấu chấm từ một chuỗi.

Phương thức Re.sub trả về một chuỗi mới thu được bằng cách thay thế các lần xuất hiện của mẫu bằng thay thế được cung cấp.

Nếu mẫu không được tìm thấy, chuỗi được trả về như vậy.

Đối số đầu tiên chúng tôi chuyển sang phương pháp

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
1 là một biểu thức chính quy.

Các dấu ngoặc vuông

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
7 được sử dụng để chỉ ra một tập hợp các ký tự.

Nếu ký tự đầu tiên của bộ là CARET

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
8, tất cả các ký tự không có trong bộ sẽ được khớp.

Nói cách khác, tập hợp của chúng tôi phù hợp với bất kỳ ký tự nào không phải là một chữ số trong phạm vi

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
9 hoặc dấu chấm.

Đối số thứ hai chúng tôi đã chuyển sang phương pháp

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
1 là sự thay thế cho mỗi trận đấu.

Copied!

import re my_str = 'a3.1b4c' result = re.sub(r'[^0-9.]', '', my_str) print(result) # 👉️ '3.14'

Chúng tôi muốn loại bỏ tất cả các ký tự hoặc dấu chấm không phải là số, vì vậy chúng tôi thay thế từng ký tự bằng một chuỗi trống.

Ngoài ra còn có một tốc ký cho phạm vi

     A       B           C
1   red78   square    235
2   green   circle    123
3   blue45  triangle  657
9.

Copied!

import re my_str = 'a3.1b4c' result = re.sub(r'[^\d.]', '', my_str) print(result) # 👉️ '3.14'

Ký tự

import re
dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)
2 phù hợp với bất kỳ chữ số thập phân unicode nào. Điều này bao gồm
import re
dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)
3 và nhiều ký tự chữ số khác.

Xóa tất cả các ký tự không phải là số ngoại trừ "." Từ chuỗi bằng cách sử dụng Jop () #

Để xóa tất cả các ký tự không phải là số ngoại trừ "." Từ một chuỗi:

  1. Sử dụng biểu thức máy phát để lặp qua chuỗi.
  2. Kiểm tra xem mỗi ký tự là một chữ số hoặc một dấu chấm và trả về kết quả.
  3. Sử dụng phương thức
    import re
    dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)
    
    4 để tham gia các ký tự vượt qua bài kiểm tra.

Copied!

my_str = 'a3.1b4c' result = ''.join(char for char in my_str if char in '123456789.') print(result) # 👉️ '3.14'

Chúng tôi đã sử dụng một biểu thức máy phát để lặp qua chuỗi.

Biểu thức của máy phát được sử dụng để thực hiện một số hoạt động cho mọi phần tử hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.

Trên mỗi lần lặp, chúng tôi kiểm tra xem ký tự hiện tại là một chữ số hoặc dấu chấm và trả về kết quả.

Các thử nghiệm trong nhà điều hành để thành viên. Ví dụ,

import re
dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)
5 đánh giá thành
import re
dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)
6 nếu
import re
dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)
7 là thành viên của
import re
dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)
8, nếu không nó sẽ đánh giá thành
import re
dfOutput.imgID = dfOutput.imgID.apply(re.sub('[^0-9]','', dfOutput.imgID), axis = 0)
9.

Đối tượng Trình tạo chỉ chứa các chữ số và dấu chấm từ chuỗi.

Copied!

my_str = 'a3.1b4c' # 👇️ ['3', '.', '1', '4'] print(list(char for char in my_str if char in '123456789.'))

Bước cuối cùng là tham gia các chữ số và dấu chấm vào một chuỗi.

Copied!

my_str = 'a3.1b4c' result = ''.join(char for char in my_str if char in '123456789.') print(result) # 👉️ '3.14'

Phương thức str.join lấy một điều đáng tin cậy như một đối số và trả về một chuỗi là sự kết hợp của các chuỗi trong điều kiện có thể sử dụng được.

Chuỗi phương thức được gọi là bật được sử dụng làm phân tách giữa các phần tử.

Đối với mục đích của chúng tôi, chúng tôi đã gọi phương thức

dfObject = pd.DataFrame()
dfObject.set_value(1, 'A', 'red78')
dfObject.set_value(1, 'B', 'square')
dfObject.set_value(1, 'C', 'big235')
dfObject.set_value(2, 'A', 'green')
dfObject.set_value(2, 'B', 'circle')
dfObject.set_value(2, 'C', 'small123')
dfObject.set_value(3, 'A', 'blue45')
dfObject.set_value(3, 'B', 'triangle')
dfObject.set_value(3, 'C', 'big657')
0 trên một chuỗi trống để tham gia các chữ số và dấu chấm mà không có dấu phân cách.