gpt4 book ai didi

python - Pandas 根据正则表达式模式列表将列添加到 df

转载 作者:行者123 更新时间:2023-11-28 22:43:23 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

Sentence                                                           bin_class
"i wanna go to sleep. too late to take seroquel." 1
"Adam and Juliana are leaving me for 43 days take me with youuuu!" 0

而且我还有一个正则表达式模式列表,我想在这些句子中使用。我想要做的是重新搜索数据框中每个句子列表中的每个模式,并在数据框中创建一个新列,如果有匹配的正则表达式则为 1,否则为零。我已经能够针对数据框中的句子运行正则表达式模式以创建匹配列表,但我不确定如何在数据框中创建新列。

matches = []
for x in df['sentence']:
for i in regex:
match = re.search(i,x)
if match:
matches.append((x,i))

最佳答案

您或许可以使用 str.count string method .一个小例子:

In [25]: df
Out[25]:
Sentence bin_class
0 i wanna go to sleep. too late to take seroquel. 1
1 Adam and Juliana are leaving me for 43 days ta... 0

In [26]: df['Sentence'].str.count(pat='to')
Out[26]:
0 3
1 0
Name: Sentence, dtype: int64

此方法还接受正则表达式模式。如果你只想要发生而不是计数,contains可能就足够了:

In [27]: df['Sentence'].str.contains(pat='to')
Out[27]:
0 True
1 False
Name: Sentence, dtype: bool

因此,您可以循环遍历您的正则表达式模式,然后每次添加一个包含上述内容的列。

有关更多示例,请参阅相关文档:http://pandas.pydata.org/pandas-docs/stable/text.html#testing-for-strings-that-match-or-contain-a-pattern

关于python - Pandas 根据正则表达式模式列表将列添加到 df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com