【发布时间】:2020-12-14 09:40:25
【问题描述】:
我的数据框(df)在新列“s_score”中有一些 NaN 条目,我可以使用 func(x) 将其排除。 即 document_path_similarity() 的执行会导致一些 NaN,从而阻止 most_similar_docs() 的执行(如果我不首先使用 func(x) )。 D1,D2 是带有字符串数据的 df.columns。
df
Quality D1 D2
0 1 Ms Stewart, the chief executive... Ms Stewart, 61, its chief executive
1 1 After more than two years' det... After more than two years in
def most_similar_docs():
def func(x):
try:
return document_path_similarity(x['D1'], x['D2'])
except:
return np.nan
df['s_score'] = df.apply(func, axis=1)
有没有办法将此代码重写为单行代码?
我的以下尝试导致'ValueError: ('max() arg is an empty sequence' 或 SyntaxError。
df['s_scores'] = df.apply(lambda x: document_path_similarity(x.D1, x.D2),axis=1)
paraphrases['s_scores'] = paraphrases.apply(lambda x: document_path_similarity(x.D1, x.D2),axis=1 if np.isnan(x))
【问题讨论】:
-
document_path_similarity 的导入/pip 安装是什么?
标签: pandas lambda python-3.6 apply nan