簡體   English   中英

在熊貓數據框中刪除行

[英]Dropping rows in a pandas dataframe

我有一個問題,我現在已經處理了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 ,也無法應用任何距離函數,例如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)

有什么建議么?

使用參數inplace=true將有助於內聯刪除記錄。 例如:

df.drop(df.index[i], inplace=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM