在数据框的对象列中找到只有特殊字符的条目
In an object column of a data frame find the entries which only have special characters
我有一个包含多列的数据集。在具有文本条目(反馈)的特定列中,想要标记所有那些只有特殊字符的条目。
我知道如何删除整列中的特殊字符,但我无法标记那些只有特殊字符的行
import string
import re
def checkString(data, Feedback):
for let in data.Feedback.str.lower():
if let in string.ascii_lowercase:
data["special_flag"] = "Valid"
else:
data["special_flag"] = "Not_Valid"
data1 = data['Feedback'].apply(checkString(data, Feedback), axis=1)
def spec(data, x):
if not re.match(r'^[_\W]+$', data.x):
data["special"] = 'valid'
else:
data["special"] = 'invalid'
data1 = data['Feedback'].apply(spec(data, Feedback), axis=1)
当我使用 运行 这些函数时,我收到一个错误 - "name 'Feedback' is not defined"
该错误告诉您当前范围内没有 Feedback
名称。
但是,您可以使用如下代码解决问题:
df['New'] = '' # Adding a new column
df['New'][df['Feedback'].str.contains(r'^[_\W]+$')] = "Invalid" # Invalid if matched
df['New'][~df['Feedback'].str.contains(r'^[_\W]+$')] = "valid" # Valid if not matched
我有一个包含多列的数据集。在具有文本条目(反馈)的特定列中,想要标记所有那些只有特殊字符的条目。
我知道如何删除整列中的特殊字符,但我无法标记那些只有特殊字符的行
import string
import re
def checkString(data, Feedback):
for let in data.Feedback.str.lower():
if let in string.ascii_lowercase:
data["special_flag"] = "Valid"
else:
data["special_flag"] = "Not_Valid"
data1 = data['Feedback'].apply(checkString(data, Feedback), axis=1)
def spec(data, x):
if not re.match(r'^[_\W]+$', data.x):
data["special"] = 'valid'
else:
data["special"] = 'invalid'
data1 = data['Feedback'].apply(spec(data, Feedback), axis=1)
当我使用 运行 这些函数时,我收到一个错误 - "name 'Feedback' is not defined"
该错误告诉您当前范围内没有 Feedback
名称。
但是,您可以使用如下代码解决问题:
df['New'] = '' # Adding a new column
df['New'][df['Feedback'].str.contains(r'^[_\W]+$')] = "Invalid" # Invalid if matched
df['New'][~df['Feedback'].str.contains(r'^[_\W]+$')] = "valid" # Valid if not matched