def conv_name(x):
try:
#library to convert strings to name dict
return pp.tag(str(x))[0]
except:
return np.nan
dfn = df.name.to_frame()
dfn['conv'] = dfn.name.apply(lambda x: conv_name(x))
dfn['given_name'] = dfn.conv.apply(pd.Series).GivenName
dfn['sunname'] = dfn.conv.apply(pd.Series).Surname
结果
- 我有一个熊猫系列(df.name)的名字。
- 我想使用外部库(可能的人)解析它们。
- 该库在某些行上返回异常,因此我已将其放入函数“conv_name”中
- 我使用 df.apply() 运行该函数以创建一个包含结果的新列
- 然后,我将结果解析为另外两列,分别表示名字和姓氏
我觉得必须有一种方法可以在不创建 dfn.conv 的情况下创建 firstname 和 surname 列,但是如果我执行类似...
dfn['given_name'] = dfn.name.apply(lambda x: conv_name(x)['GivenName'])
我得到一个 KeyError。
所以我的具体问题是,如何在不创建 conv 列的情况下创建 first 和 surname 列?
