Khi
is_stringlike = np.isnan[numeric_X]
0 chứa hỗn hợp các số và chuỗi, DTYPE của cột sẽ là is_stringlike = np.isnan[numeric_X]
1 thay vì DTYPE số. Các mục giống như số trong is_stringlike = np.isnan[numeric_X]
0 có thể là ints hoặc floats hoặc thậm chí có thể là chuỗi [không rõ từ câu hỏi của bạn]. Nhiều hoạt động số như is_stringlike = np.isnan[numeric_X]
3 có thể gây ra lỗi trong trường hợp này.Để coi các giá trị giống như số làm số, hãy sử dụng
is_stringlike = np.isnan[numeric_X]
4 để chuyển đổi cột thành DTYPE số:In [41]: numeric_X = pd.to_numeric[df['X'], errors='coerce']
In [43]: numeric_X
Out[43]:
0 13500.0
1 13600.0
2 NaN
3 NaN
4 15003.0
5 15004.0
Name: X, dtype: float64
Và bạn cũng có thể xác định các giá trị giống như chuỗi bằng cách kiểm tra NANS:
is_stringlike = np.isnan[numeric_X]
import numpy as np
import pandas as pd
df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}]
numeric_X = pd.to_numeric[df['X'], errors='coerce']
is_stringlike = np.isnan[numeric_X]
conditions = [numeric_X > 15000, is_stringlike]
choices = ['A', df['X']]
df['Y'] = [np.select[conditions, choices, default='B']]
print[df]
năng suất
X Y
0 13500 B
1 13600 B
2 BBOX-001 BBOX-001
3 Mobi-1 Mobi-1
4 15003 A
5 15004 A
Xóa các ký tự không phải là số ngoại trừ "." trong Python #
Sử dụng phương thức
5 để loại bỏ tất cả các ký tự không phải là số ngoại trừ DOT is_stringlike = np.isnan[numeric_X]
6 khỏi chuỗi, ví dụ: is_stringlike = np.isnan[numeric_X]
7. Phương thức is_stringlike = np.isnan[numeric_X]
5 sẽ loại bỏ tất cả các ký tự không phải là số ra khỏi chuỗi bằng cách thay thế chúng bằng các chuỗi trống.is_stringlike = np.isnan[numeric_X]
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
is_stringlike = np.isnan[numeric_X]
5 để xóa 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
is_stringlike = np.isnan[numeric_X]
5 là một biểu thức chính quy.Các dấu ngoặc vuông
import numpy as np
import pandas as pd
df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}]
numeric_X = pd.to_numeric[df['X'], errors='coerce']
is_stringlike = np.isnan[numeric_X]
conditions = [numeric_X > 15000, is_stringlike]
choices = ['A', df['X']]
df['Y'] = [np.select[conditions, choices, default='B']]
print[df]
1 đượ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
2, tất cả các ký tự không có trong bộ sẽ được khớp.import numpy as np
import pandas as pd
df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}]
numeric_X = pd.to_numeric[df['X'], errors='coerce']
is_stringlike = np.isnan[numeric_X]
conditions = [numeric_X > 15000, is_stringlike]
choices = ['A', df['X']]
df['Y'] = [np.select[conditions, choices, default='B']]
print[df]
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
import numpy as np
import pandas as pd
df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}]
numeric_X = pd.to_numeric[df['X'], errors='coerce']
is_stringlike = np.isnan[numeric_X]
conditions = [numeric_X > 15000, is_stringlike]
choices = ['A', df['X']]
df['Y'] = [np.select[conditions, choices, default='B']]
print[df]
3 hoặc dấu chấm.Đối số thứ hai chúng tôi đã chuyển sang phương pháp
is_stringlike = np.isnan[numeric_X]
5 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
import numpy as np
import pandas as pd
df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}]
numeric_X = pd.to_numeric[df['X'], errors='coerce']
is_stringlike = np.isnan[numeric_X]
conditions = [numeric_X > 15000, is_stringlike]
choices = ['A', df['X']]
df['Y'] = [np.select[conditions, choices, default='B']]
print[df]
3.Copied!
import re my_str = 'a3.1b4c' result = re.sub[r'[^\d.]', '', my_str] print[result] # 👉️ '3.14'
Ký tự
import numpy as np
import pandas as pd
df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}]
numeric_X = pd.to_numeric[df['X'], errors='coerce']
is_stringlike = np.isnan[numeric_X]
conditions = [numeric_X > 15000, is_stringlike]
choices = ['A', df['X']]
df['Y'] = [np.select[conditions, choices, default='B']]
print[df]
6 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 numpy as np
import pandas as pd
df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}]
numeric_X = pd.to_numeric[df['X'], errors='coerce']
is_stringlike = np.isnan[numeric_X]
conditions = [numeric_X > 15000, is_stringlike]
choices = ['A', df['X']]
df['Y'] = [np.select[conditions, choices, default='B']]
print[df]
7 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:
- Sử dụng biểu thức máy phát để lặp qua chuỗi.
- 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ả.
- Sử dụng phương thức
8 để tham gia các ký tự vượt qua bài kiểm tra.import numpy as np import pandas as pd df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}] numeric_X = pd.to_numeric[df['X'], errors='coerce'] is_stringlike = np.isnan[numeric_X] conditions = [numeric_X > 15000, is_stringlike] choices = ['A', df['X']] df['Y'] = [np.select[conditions, choices, default='B']] print[df]
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 numpy as np
import pandas as pd
df = pd.DataFrame[{'X': ['13500', '13600', 'BBOX-001', 'Mobi-1', '15003', '15004']}]
numeric_X = pd.to_numeric[df['X'], errors='coerce']
is_stringlike = np.isnan[numeric_X]
conditions = [numeric_X > 15000, is_stringlike]
choices = ['A', df['X']]
df['Y'] = [np.select[conditions, choices, default='B']]
print[df]
9 đánh giá thành X Y
0 13500 B
1 13600 B
2 BBOX-001 BBOX-001
3 Mobi-1 Mobi-1
4 15003 A
5 15004 A
0 nếu X Y
0 13500 B
1 13600 B
2 BBOX-001 BBOX-001
3 Mobi-1 Mobi-1
4 15003 A
5 15004 A
1 là thành viên của X Y
0 13500 B
1 13600 B
2 BBOX-001 BBOX-001
3 Mobi-1 Mobi-1
4 15003 A
5 15004 A
2, nếu không nó sẽ đánh giá thành X Y
0 13500 B
1 13600 B
2 BBOX-001 BBOX-001
3 Mobi-1 Mobi-1
4 15003 A
5 15004 A
3.Đố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
X Y
0 13500 B
1 13600 B
2 BBOX-001 BBOX-001
3 Mobi-1 Mobi-1
4 15003 A
5 15004 A
4 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.