2015-12-21 33 views
5

我有以下熊貓數據框對象df。這是列出出發日期,預定出發時間和火車公司的列車時刻表。熊貓DataFrame:訪問多個項目不等於,=!

import pandas as pd 
df = 

      Year Month DayofMonth DayOfWeek DepartureTime Train Origin 
Datetime 
1988-01-01 1988 1  1   5  1457  BritishRail Leeds 
1988-01-02 1988 1  2   6  1458  DeutscheBahn Berlin 
1988-01-03 1988 1  3   7  1459  SNCF   Lyons 
1988-01-02 1988 1  2   6  1501  BritishRail Ipswich 
1988-01-02 1988 1  2   6  1503  NMBS   Brussels 
.... 

現在,假設我想選擇「列車」列中的所有項目「DeutscheBahn」。

我會用

DB = df[df['Train'] == 'DeutscheBahn'] 

現在,我該怎麼選擇,除了德國鐵路和英國Rails和法國國營鐵路公司所有列車。我怎樣才能同時選擇這些項目不是這些?

notDB = df[df['Train'] != 'DeutscheBahn'] 

notSNCF = df[df['Train'] != 'SNCF'] 

,但我不知道如何將這些組合到一個命令。

df[df['Train'] != 'DeutscheBahn', 'SNCF'] 

不起作用。

回答

9
df[~df['Train'].isin(['DeutscheBahn', 'SNCF'])] 

isin返回df['Train']是在給定列表中的值,而~一開始基本上是一個not運營商。

另一個工作,但不再語法是:

df[(df['Train'] != 'DeutscheBahn') & (df['Train'] != 'SNCF')]