熊猫应用功能不适用于数据框

时间:2020-05-17 21:31:58

标签: python pandas dataframe apply

我想使用正则表达式从Pnadas数据框中检索名称,但是pandas Apply函数不适用于DataFrame对象。它在熊猫系列物体上工作良好。请为我解释。

import pandas as pd
import re
doc = pd.DataFrame(['William Hartnell (1963-66)',
'Patrick Troughton (1966-69)',
'Jon Pertwee (1970 74)',
'Tom Baker (1974-81)',
'Peter Davison (1982-84)'])

p = re.compile('\w+\s+\w+')

def get_name(s):
    return p.match(s).group()

nam = docs.apply(get_name) # gives me an error

nam = doc[0].apply(get_name) # works fine

为什么我的函数不能应用于数据框?感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

使用apply函数时,它将迭代指定区域中的所有值。

此代码将整个数据帧行传递到函数中,而p.match无法使用该函数。

doc.apply(get_name) #Note that you should also put axis=1

但是,此代码仅传递其中包含名称的列,因此p.match可以成功使用它。

doc[0].apply(get_name)
相关问题