2016-05-13 436 views
2

我認爲這是一個簡單的修復,我不確定我錯過了什麼。我有一個數據幀,例如:在熊貓數據框的列中刪除包含'False'的行

  index    c1  c2   c3 
2015-03-07 01:27:05  False False  True 
2015-03-07 01:27:10  False False  True 
2015-03-07 01:27:15  False False  False 
2015-03-07 01:27:20  False False  True 
2015-03-07 01:27:25  False False  False 
2015-03-07 01:27:30  False False  True 

我想刪除包含在c3False任何行。 c3dtype=bool。我一直遇到問題,因爲它是一個布爾值而不是字符串/ int/etc,我以前沒有處理過。

感謝您的幫助!

+0

你能否提供一些代碼行? –

+0

你是如何處理文件的? – aBiologist

回答

5

那麼這個問題的標題和問題本身是完全相反的,但是:

df = df[df['c3'] == True] # df will have only rows with True in c3 
13

熊貓涉及布爾在一個非常整潔,簡單的方式:

df = df[df.c3] 

當你過濾數據幀使用df[...],你經常寫一些函數返回一個布爾值(如df.x > 2)。但是在這種情況下,由於該列已經是布爾值,因此您可以自行放置df.c3,這會得到所有行爲True

如果您想得到相反的結果(如問題的原始標題所暗示的那樣),則可以使用df[~df.c3],其中~顛倒布爾值。

1

解決方案

df.drop(df[df['c3'] == False].index, inplace=True) 

這明確地滴行,其中'c3'False,而不只是保持計算結果爲True

相關問題