我有一个问题,我现在已经处理了2天,即使我在StackOverflow上阅读文档和类似问题的答案,我也无法找到解决方案。
我有一对包含问题的数据集,我应该标记重复或不重复。在训练数据集上,我实现了清理和矢量化 - word2vec。不幸的是,对于某些行,word2vec返回emply值(nan),因为它们在清理后没有任何单词。
所以,我试图放弃这一行,但它根本不起作用。
LEN = len(train1)
print("Innitial lenght: ")
print(len(train1))
print("Empty rows: ")
for i in range(0, LEN):
if ((type(train1['q1_vec'][i]) != np.ndarray) or (type(train1['q2_vec'][i])!= np.ndarray)):
print(i)
train1.drop(train1.index[i])
print("Lenght after cleaning")
print(len(train1))
我得到了结果:
Innitial lenght:
258528
Empty rows:
29296
59523
80284
...
219103
Lenght after cleaning
258528
这意味着我没有删除任何内容,我也无法应用任何距离函数,例如scipy.spatial.distance.euclidean
等。
我尝试使用Lambda函数,但也没有成功。
train1['euclidean'] = train1.apply(lambda row: dist.euclidean(row['q1_vec'], row['q2_vec']) if ((type(row['q1_vec']) == np.ndarray) or (type(row['q2_vec']) == np.ndarray)) else None, axis=1)
有什么建议吗?
答案 0 :(得分:0)
使用参数inplace=true
将有助于内联删除记录。例如:
df.drop(df.index[i], inplace=True)