数据框行和列是不是包含字符串?如果是这样,则在新列中返回该字符串
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,如果存在,则删除该行 [重复]