Xem thảo luận Cải thiện bài viết Lưu bài viết ĐọcBàn luậnXem thảo luận Cải thiện bài viết Lưu bài viết Đọc Bàn luận This task can be performed using the lambda function. In this we check for string for None or empty string using the or operator and replace the empty string with None. Đôi khi, trong khi làm việc với học máy, chúng tôi có thể gặp các chuỗi trống và chúng tôi muốn chuyển đổi sang không có tính nhất quán dữ liệu. Điều này và nhiều tiện ích khác có thể yêu cầu giải pháp cho vấn đề này. Hãy để thảo luận về những cách nhất định trong đó vấn đề này có thể được giải quyết. Phương pháp số 1: Sử dụng tác vụ Lambdathis có thể được thực hiện bằng hàm Lambda. Trong đó, chúng tôi kiểm tra chuỗi cho không có hoặc chuỗi trống bằng toán tử hoặc thay thế chuỗi trống bằng không có. Các The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
8The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
9def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
0 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
1 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
2def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
3def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
4The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
1 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
6 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
7def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
8 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
0____11 In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
2In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
3 In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
4In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
5 In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
6
The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
8The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
9In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
9 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
1 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
2# Original approach
def empty_str_to_null(s0):
s = s0.copy()
"""Convert empty strings to None (null)"""
s.loc[s.str.strip().str.len() == 0] = None
return s
# Proposed approach
def empty_str_to_null_slicer(s0):
s = s0.copy()
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/3293881
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
2 Simply the str function can be used to perform this particular task because, None also evaluates to a “False” value and hence will not be selected and rather a string converted
false which evaluates to empty string is returned.
Đôi khi, trong khi làm việc với học máy, chúng tôi có thể gặp các chuỗi trống và chúng tôi muốn chuyển đổi sang không có tính nhất quán dữ liệu. Điều này và nhiều tiện ích khác có thể yêu cầu giải pháp cho vấn đề này. Hãy để thảo luận về những cách nhất định trong đó vấn đề này có thể được giải quyết. Phương pháp số 1: Sử dụng tác vụ Lambdathis có thể được thực hiện bằng hàm Lambda. Trong đó, chúng tôi kiểm tra chuỗi cho không có hoặc chuỗi trống bằng toán tử hoặc thay thế chuỗi trống bằng không có. Các def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
4The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
1 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
6 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
7def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
8 def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
0____11 In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
2In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
3 In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
4In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
5 In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
6
The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
Đây là một cách tiếp cận - def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
Chạy mẫu - In [245]: s = pd.Series(np.repeat([1,'',' ',None,np.NaN],2))
In [246]: s
Out[246]:
0 1
1 1
2
3
4
5
6 None
7 None
8 NaN
9 NaN
dtype: object
In [247]: a = s.values.astype(str)
...: mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
...: s[mask] = None
...:
In [248]: s
Out[248]:
0 1
1 1
2 None
3 None
4 None
5 None
6 None
7 None
8 NaN
9 NaN
dtype: object
Kiểm tra thời gian chạy - Phương pháp tiếp cận - # Original approach
def empty_str_to_null(s0):
s = s0.copy()
"""Convert empty strings to None (null)"""
s.loc[s.str.strip().str.len() == 0] = None
return s
# Proposed approach
def empty_str_to_null_slicer(s0):
s = s0.copy()
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/3293881
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
Thời gian - thời gian - In [228]: foo = pd.Series(np.repeat([1,'',' ',None,np.NaN],1E6))
In [229]: %timeit empty_str_to_null(foo)
1 loop, best of 3: 4.17 s per loop
In [230]: %timeit empty_str_to_null_slicer(foo)
1 loop, best of 3: 573 ms per loop
Chuyển đổi không thành một chuỗi trống trong python #Sử dụng boolean hoặc toán tử để chuyển đổi không có chuỗi trống trong Python, ví dụ: Copied! name = None
if name is None:
name = ""
print(name) # 👉️ ""
6. Boolean hoặc toán tử trả về giá trị bên trái nếu đó là sự thật, nếu không giá trị bên phải được trả về. Vì def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9 là một giá trị giả, hoạt động sẽ trả về Copied! name = None
if name is None:
name = ""
print(name) # 👉️ ""
8. Copied! name = None
result = name or ""
print(result) # 👉️ ""
Chúng tôi đã sử dụng boolean hoặc toán tử để trả về một chuỗi trống nếu giá trị bên trái là giả. Tất cả các giá trị không phải là sự thật được coi là giả mạo. Các giá trị giả trong Python là: - Các hằng số được xác định là giả mạo:
def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9 và Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
0. Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
1 (không) thuộc bất kỳ loại số nào- Trình tự và bộ sưu tập trống:
Copied! name = None
if name is None:
name = ""
print(name) # 👉️ ""
8 (Chuỗi trống), Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
3 (Tuple trống), Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
4 (danh sách trống), Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
5 (Từ điển trống), Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
6 (bộ trống), Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
7 (phạm vi trống).
Biểu thức Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
8 trả về giá trị bên trái nếu đó là sự thật, nếu không giá trị bên phải được trả về. Vì def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9 là một giá trị giả, nên biểu thức Copied! name = 'hello'
name = "" if name is None else name
print(name) # 👉️ "hello"
0 sẽ luôn trả về Copied! name = 'hello'
name = "" if name is None else name
print(name) # 👉️ "hello"
1.Lưu ý rằng biểu thức Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
8 cũng sẽ trả về Copied! name = 'hello'
name = "" if name is None else name
print(name) # 👉️ "hello"
1 nếu Copied!
name = 'hello'
name = "" if name is None else name
print(name) # 👉️ "hello"
4 là bất kỳ giá trị giả nào khác, ví dụ: Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
1, Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
0 hoặc một danh sách trống, dict hoặc tuple.Ngoài ra, bạn có thể sử dụng câu lệnh Copied! name = 'hello'
name = "" if name is None else name
print(name) # 👉️ "hello"
7 để kiểm tra xem biến lưu trữ def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9 và gán lại nó thành một chuỗi trống.Copied! name = None
if name is None:
name = ""
print(name) # 👉️ ""
Kiểm tra def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9 rõ ràng hơn nhiều và khối Copied! name = 'hello'
name = "" if name is None else name
print(name) # 👉️ "hello"
7 sẽ chỉ chạy nếu biến lưu trữ giá trị def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9.Điều kiện sẽ không được thỏa mãn nếu biến lưu trữ bất kỳ giá trị giả nào khác.
Bạn cũng có thể sử dụng câu lệnh One-Liner The original list is : ['Geeks', '', 'CS', '', '']
The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
02.Copied! name = None
name = "" if name is None else name
print(name) # 👉️ ""
Nếu biến lưu trữ def empty_str_to_null_slicer(s):
a = s.values.astype(str)
# slicer_vectorized from https://stackoverflow.com/a/39045337/
mask = (slicer_vectorized(a,0,1)==' ') | (a=='')
s[mask] = None
return s
9, nó sẽ được đặt thành một chuỗi trống, nếu không nó sẽ được đặt thành giá trị hiện tại của nó.Copied! name = 'hello'
name = "" if name is None else name
print(name) # 👉️ "hello"
Làm thế nào để bạn thay thế một chuỗi trống bằng không có trong Python?
Đơn giản là hàm STR có thể được sử dụng để thực hiện nhiệm vụ cụ thể này bởi vì, không ai cũng đánh giá với giá trị sai của Fai và do đó sẽ không được chọn và thay vào đó là một chuỗi được chuyển đổi sai để đánh giá thành chuỗi trống được trả về.str function can be used to perform this particular task because, None also evaluates to a “False” value and hence will not be selected and rather a string converted false which evaluates to empty string is returned.
Làm thế nào để bạn thay thế một chuỗi trống trong Python?
Thay thế NAN bằng chuỗi trống bằng cách sử dụng thay thế (), chúng ta có thể thay thế NAN bằng một chuỗi trống bằng hàm df.replace ().Hàm này sẽ thay thế một chuỗi trống tại chỗ của giá trị NAN.df. replace() function. This function will replace an empty string inplace of the NaN value.
Làm thế nào để bạn thay đổi một chuỗi thành không có trong Python?
Sử dụng boolean hoặc toán tử để chuyển đổi không có chuỗi trống trong Python, ví dụ:kết quả = không hoặc "".Boolean hoặc toán tử trả về giá trị bên trái nếu đó là sự thật, nếu không giá trị bên phải được trả về.Vì không có giá trị giả, hoạt động sẽ trả về "".Đã sao chép!, e.g. result = None or "" . The boolean OR operator returns the value to the left if it's truthy, otherwise the value to the right is returned. Since None is a falsy value, the operation will return "" . Copied!
Làm thế nào để bạn thay thế một chuỗi trống trên không?
Để thay thế giá trị trống bằng không/null trên cột DataFrame đơn, bạn có thể sử dụng hàm withColumn () và khi (). Nếu không () hàm.use withColumn() and when(). otherwise() function. |