python - 如何在数据框中查找其间带有下划线文本的字符串

标签 python string pandas dataframe

在数据框中,我的 Ex 值如下:

Rhymes(column name)
Johny johny.yes_papa eating
sugar
No papa.open_mouth_ha ha ha

输出应该是所有带有下划线的字符串的列表,例如:

yes_papa,
open_mouth_ha

我正在尝试使用以下代码,但我只在数据框中获取列名称:

df[df["Rhymes"].str.contains("_&_&_",na =False)]

我应该使用正则表达式来获得精确匹配

最佳答案

方法pd.Series.str.contains返回一个 bool 系列,它不返回您想要的字符串。

您可以使用带有 str.split 的自定义函数,将其应用于您的系列,删除空值并转换回数据帧:

df = pd.DataFrame({'Rhymes': ['Johny johny.yes_papa eating', 'sugar',
                              'No papa.open_mouth_ha ha ha']})

def get_underscores(x):
    return next((i for i in x.replace('.',' ').split() if '_' in i), None)

res = df['Rhymes'].apply(get_underscores).dropna().to_frame()

print(res)

          Rhymes
0       yes_papa
2  open_mouth_ha

关于python - 如何在数据框中查找其间带有下划线文本的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51722546/

相关文章:

C: ???正在添加到 sizeof(string) 之外的我的字符串中

python - python中的滚动中位数

python - 根据引用其他 DataFrame 的值的索引复制列中的值

python - 在 mac 操作系统上安装 mxnet 时出错

python - 如何将字符串作为新列添加到 Pandas Dataframe?

string - Scala 中 java.lang.String 的引用相等性

C# - 路径中的非法字符

python - 如何在 python 中对多个数据帧使用单个过滤器

javascript - 如何检查 Django 对象是否在 javascript 中为 None?

python - Flask 如何通过 init_db() 声明性地使用 sqlalchemy?