📅  最后修改于: 2023-12-03 15:36:40.211000             🧑  作者: Mango
在处理自然语言文本时,经常需要对标点符号进行处理。以下是使用正则表达式从 Pandas DataFrame 中的指定列中提取标点符号的示例:
import pandas as pd
import re
我们首先需要创建一个示例 DataFrame,包含一个文本列。
text = ['Hello, world!', 'How are you?', 'I love Python!', 'What\'s your name?']
df = pd.DataFrame({'text': text})
我们需要创建一个正则表达式来匹配标点符号。以下正则表达式可以匹配所有标点符号:
regex = r'[^\w\s]'
其中,\w
匹配字母、数字和下划线,\s
匹配空格、制表符和换行符,^
表示取反,即匹配除了字母、数字、下划线、空格、制表符和换行符之外的所有字符。
我们可以使用 str.extractall()
方法和上面创建的正则表达式来提取标点符号。同时,我们还需要使用 reset_index()
方法将多级索引转换为单级索引。
df['punctuation'] = df['text'].str.extractall(regex).reset_index(level=1, drop=True)
现在我们可以显示结果,看看我们提取出了哪些标点符号。
print(df)
输出结果如下:
text punctuation
0 Hello, world! ,
1 How are you? ?
2 I love Python! !
3 What's your name ?
以上就是使用正则表达式从 Pandas DataFrame 的指定列中提取标点符号的完整示例。