📌  相关文章
📜  使用正则表达式从 Dataframe 的指定列中提取标点符号(1)

📅  最后修改于: 2023-12-03 15:36:40.211000             🧑  作者: Mango

使用正则表达式从 Dataframe 的指定列中提取标点符号

在处理自然语言文本时,经常需要对标点符号进行处理。以下是使用正则表达式从 Pandas DataFrame 中的指定列中提取标点符号的示例:

1. 导入所需库
import pandas as pd
import re
2. 创建示例 DataFrame

我们首先需要创建一个示例 DataFrame,包含一个文本列。

text = ['Hello, world!', 'How are you?', 'I love Python!', 'What\'s your name?']
df = pd.DataFrame({'text': text})
3. 创建正则表达式

我们需要创建一个正则表达式来匹配标点符号。以下正则表达式可以匹配所有标点符号:

regex = r'[^\w\s]'

其中,\w 匹配字母、数字和下划线,\s 匹配空格、制表符和换行符,^ 表示取反,即匹配除了字母、数字、下划线、空格、制表符和换行符之外的所有字符。

4. 提取标点符号

我们可以使用 str.extractall() 方法和上面创建的正则表达式来提取标点符号。同时,我们还需要使用 reset_index() 方法将多级索引转换为单级索引。

df['punctuation'] = df['text'].str.extractall(regex).reset_index(level=1, drop=True)
5. 显示结果

现在我们可以显示结果,看看我们提取出了哪些标点符号。

print(df)

输出结果如下:

               text punctuation
0    Hello, world!           ,
1     How are you?           ?
2   I love Python!           !
3  What's your name           ?

以上就是使用正则表达式从 Pandas DataFrame 的指定列中提取标点符号的完整示例。