Python 有没有快速提取';嗨';从dataframe中的列?
我的数据如下:Python 有没有快速提取';嗨';从dataframe中的列?,python,string,pandas,dataframe,Python,String,Pandas,Dataframe,我的数据如下: a=pd.DataFrame({'aa':['hi asf afe','hi a fefe','hi fefavfv av'], 'b':['faef af af asf fef','1 1 1','greg fd']}) 我想要的是从aa列中提取“hi”之后的单词(可能是一个名称)。这是我的方式: import re def myTry(Str): g=re.search('hi (.*?) ',Str) return g.gr
a=pd.DataFrame({'aa':['hi asf afe','hi a fefe','hi fefavfv av'],
'b':['faef af af asf fef','1 1 1','greg fd']})
我想要的是从aa列中提取“hi”之后的单词(可能是一个名称)。这是我的方式:
import re
def myTry(Str):
g=re.search('hi (.*?) ',Str)
return g.group(1)
a.loc[:,'Try']=a.apply(lambda x: myTry(x['aa']),axis=1)
结果是正确的。但我必须在这里定义一个函数。我想知道是否有一个简单的方法来做到这一点?谢谢试试这个:
a=pd.DataFrame({'aa':['hi asf afe','hi a fefe','hi fefavfv av'],
'b':['faef af af asf fef','1 1 1','greg fd']})
#a['bb'] = a['aa'].str.split('hi').str.get(1).str.strip()
# To keep first word after 'hi'
a['bb'] = a['aa'].str.split('hi').str.get(1).str.strip().str.split(' ').str.get(0)
a
输出:
aa b bb
0 hi asf afe faef af af asf fef asf
1 hi a fefe 1 1 1 a
2 hi fefavfv av greg fd fefavfv
使用
str.extract
如下:
a.aa.str.extract(r'hi +\b(\w+)\b')
Out[133]:
0
0 asf
1 a
2 fefavfv
如果您坚持使用
str.split
。一个简单的默认拆分和拾取第二个元素就足够了
a.aa.str.split().str[1]
Out[134]:
0 asf
1 a
2 fefavfv
Name: aa, dtype: object
嗨,非常感谢。但我只想在“嗨”之后保留一个字。这里有两个字是保留的。