数据框行和列是不是包含字符串?如果是这样,则在新列中返回该字符串

Posted

技术标签:

【中文标题】数据框行和列是不是包含字符串?如果是这样,则在新列中返回该字符串【英文标题】:Does data frame row and column contains string? If so, return that string in new column数据框行和列是否包含字符串?如果是这样,则在新列中返回该字符串 【发布时间】:2022-01-20 14:57:48 【问题描述】:

我有一个数据框,我想创建一个新列,如果特定列中存在字符串,则将该字符串输出为新列的值加上之后的 3 个空格。

例子-

在本例中,我想搜索字符串“Note”,如果该字符串存在于 note 列中,则输入“Note”,然后在接下来的三个空格中输入。

之前:

id partNumber note
1 a1b33 apples
2 hhgh5667 banana, Note 55, and pineapples
3 hhgh5667 Note 1A, and blueberries
4 09890ii blackberries

之后:

id part_number note Note_number
1 a1b33 apples NA
2 hhgh5667 banana, Note 55, and pineapples Note 55
3 hhgh5667 Note 1A, and blueberries Note 1A
4 09890ii blackberries NA

【问题讨论】:

【参考方案1】:

您可以使用带有 str.extract 的正则表达式来捕获从 Note 到逗号之前的所有内容。

df['Note_number'] = df.note.str.extract('(Note.*)(?=\,)')

输出

   id partNumber                             note Note_number
0   1      a1b33                           apples         NaN
1   2   hhgh5667  banana, Note 55, and pineapples     Note 55
2   3   hhgh5667         Note 1A, and blueberries     Note 1A
3   4    09890ii                     blackberries         NaN

【讨论】:

成功了,谢谢! '.*' 和 '(?=\,)' 是什么意思?另外,如果字符串'Note'在note列中出现的次数超过一次,有没有办法提取多个notes? 肯定可以,只需要修改正则表达式,regex101.com/r/zUOzJe/1

以上是关于数据框行和列是不是包含字符串?如果是这样,则在新列中返回该字符串的主要内容,如果未能解决你的问题,请参考以下文章

R测试值是不是是组中最低的,如果值是组中最低的,则在新列中添加“是”/“否”

R - 检查 r 数据框行的任何列中是不是存在 NA,如果存在,则删除该行 [重复]

比较两列:如果匹配,则在新列中打印值,如果不匹配,则将第二列的值打印到新列

如何将特定的行和列值乘以常数来创建新列?

pandas:查找部分字符串并在新列中使用它

具有多个固定行和列的 HTML 表格