我将把我的问题作为一个简化的例子来表示。
我有一个pandas DataFrame,我想创建一个新列,其内容来自现有列,称之为“columnA”,其值是长文本字符串。
假设df[“columnA”]中的值是“Hello world the sky is blue and the grass is绿色”
我希望新列仅包含columnA中以“T”或“G”开头的单词
因此,新列中的相应值为:“绿色”
(in我的真实的例子,一切都是大写)
我尝试过以不同的方式使用findall()和列表解析,我能够返回第一次出现的结果,但很难有效地获取所有出现的结果。
2条答案
按热度按时间8yparm6h1#
在
pandas.Series.str.findall
调用中使用以下正则表达式模式\b([tg]\w+)\b
:kcwpcxri2#
这段代码对Pandas DataFrame df中名为columnA的列中的值执行字符串操作。具体来说,它会查找所有出现的以't '、' b '、' T '或'B'开头并后跟一个或多个单词或数字(包括连字符)的单词
fillall函数返回一个列表,这就是为什么我使用.str.join(““)方法将列表转换为字符串。