可以使用 pandas 的 applymap() 方法遍历数据帧的每个元素,并使用正则表达式提取特殊字符。
以下是一个示例代码:
import pandas as pd
import re
# 创建示例数据帧
data = {'col1': ['abc', 'def', 'ghi'],
'col2': ['jkl', 'mno', 'pqr'],
'col3': ['stu', 'vwx', 'yz@']}
df = pd.DataFrame(data)
# 定义特殊字符的正则表达式模式
pattern = r'[^a-zA-Z0-9\s]'
# 定义提取特殊字符的函数
def extract_special_chars(cell):
special_chars = re.findall(pattern, str(cell))
return special_chars
# 使用 applymap 遍历数据帧的每个元素并提取特殊字符
special_chars_list = df.applymap(extract_special_chars).values.flatten().tolist()
# 打印特殊字符列表
print(special_chars_list)
输出结果为:
['@']
在上述代码中,首先创建了一个包含示例数据的数据帧。然后,定义了一个正则表达式模式,用于匹配特殊字符。接下来,定义了一个函数 extract_special_chars()
,使用 re.findall()
方法提取特殊字符。最后,使用 applymap()
方法遍历数据帧的每个元素,并将提取的特殊字符保存到一个列表中。最后,打印特殊字符列表。