Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有快速提取';嗨';从dataframe中的列?_Python_String_Pandas_Dataframe - Fatal编程技术网

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

嗨,非常感谢。但我只想在“嗨”之后保留一个字。这里有两个字是保留的。