2017-08-15 279 views
1

我試圖從一列中滿足某些條件的數據框中刪除所有行。基於列條件的熊貓數據框架過濾

比方說我的數據幀是這樣的:

index 'Value 1' 'Grade' 
1   10   2170A 
2   15   2170B 
3   10   NCR2170B 
4   20   NCR2170A 
5   30   NCR2170B 

我想要的輸出濾波是這個

index 'Value 1' 'Grade' 
2   15   2170B 
3   10   NCR2170B 
5   30   NCR2170B 

我曾嘗試使用列表理解的許多不同的變化後,通過每一行循環並進行評估。我可以使它工作時,我使用的東西沿線:

data_filtered = data[data['Grade'] == '2170B'] 

但是,這顯然錯過了像NCR2170B條目。

每當我嘗試類似:

data_filtered = data['2170B' in data['Grade']] 

我得到密鑰錯誤: '真'。

我覺得我缺少一些非常明顯的東西。

我也嘗試過使用np.where,但它只是輸出一個空數組。

回答

1

您可以使用str.contains檢查一個字符串列包含一個子字符串:

df[df.Grade.str.contains('2170B')] 

#index Value 1 Grade 
#1 2  15 2170B 
#2 3  10 NCR2170B 
#4 5  30 NCR2170B 
+1

太感謝你了,我知道這是一些簡單的,我是不知道的。對不起,我是python的新手。 – awsmagala