在数据框中,我的 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/