2013-07-23 65 views
0

我一次遍歷Pandas中的一個數據幀。我正在檢查該行是否符合某些條件。然後,我想放棄該行。我怎樣才能做到這一點?在熊貓中刪除行

回答

1

這取決於你的標準是否保留它,一個簡單的方法是創建一個測試功能:

In [11]: def keep_row(row): 
      return True # you may want to make this stricter... 

In [12]: df.apply(keep_row, axis=1) 

然後,你可以只保留那些好行:

In [13]: df = df[df.apply(keep_row, axis=1)] 

它可能會更快,如果你可以找出某種方法來向量化(使用numpy來描述)保持行的條件,但很難說明沒有具體的例子。

+0

有沒有一種方法,我可以在函數中傳遞我想要的值?假設我有一個包含列A,B和C的數據框,並且我想使用一個使用兩列A和B的函數。 – user1867185

+1

編輯您的原始問題以包含您想到的示例。包含樣本數據和預期輸出的獎勵點數。你的問題的答案是肯定的,但沒有一個例子就難以解釋。 – TomAugspurger

+0

@ user1867185是的,只需使用行['A'],行['B']等在函數內抓取它們 –

0

熊貓的第一條規則是,如果你迭代行,你可能做錯了。要刪除滿足條件的行,只需選擇不符合條件的行,例如你想刪除列A ==「rrr」的行:

df = df[df.A!="rrr"]