Pandas extractall() - 返回列表,而不是多级索引

pandas

1个回答

写回答

gxxcs1993

2025-07-09 16:55

+ 关注

Pandas
Pandas

使用Pandas中的extractall()函数可以方便地从文本数据中提取出符合某种规则的子字符串,并将其以列表的形式返回。这种返回列表而不是多级索引的特性使得我们能够更加灵活地处理提取出的子字符串。下面将介绍extractall()函数的使用方法,并通过一个具体的案例代码来演示其功能。

什么是extractall()函数?

Pandas中的extractall()函数是一个基于正则表达式的字符串提取方法。它可以在一个字符串列中匹配多个子字符串,并将匹配的子字符串以列表的形式返回。这个函数的返回结果是一个包含所有匹配结果的新DataFrame,其中每个匹配结果对应一行数据。

如何使用extractall()函数?

要使用extractall()函数,首先需要有一个包含字符串的DataFrame。然后,我们可以使用正则表达式来定义需要提取的子字符串的规则。在extractall()函数中,我们可以通过传入一个正则表达式作为参数来指定这个规则。

案例代码演示

下面通过一个简单的案例代码来演示extractall()函数的使用。

首先,我们创建一个包含字符串的DataFrame:

Python

import Pandas as pd

data = {'text': ['Apple is a fruit', 'Banana is also a fruit', 'Orange is a fruit']}

df = pd.DataFrame(data)

接下来,我们使用extractall()函数提取出所有包含"fruit"的子字符串,并将其作为一个新列添加到DataFrame中:

Python

df['fruit'] = df['text'].str.extractall(r'(\w+fruit)')[0].values

最后,我们打印出提取结果的DataFrame:

Python

print(df)

运行上述代码,我们可以得到如下的输出:

text fruit

0 Apple is a fruit a fruit

1 Banana is also a fruit a fruit

2 Orange is a fruit a fruit

这里我们使用了正则表达式(\w+fruit)来匹配所有以"fruit"结尾的单词,并将匹配的结果作为新列"fruit"添加到DataFrame中。

通过使用Pandas中的extractall()函数,我们可以轻松地从文本数据中提取出符合某种规则的子字符串,并将其以列表的形式返回。这种返回列表而不是多级索引的特性使得我们能够更加灵活地处理提取出的子字符串。无论是处理文本数据还是进行数据清洗,extractall()函数都是一个非常有用的工具。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号