2015-12-21 17 views
5

Aşağıdaki Pandas DataFrame nesnesine sahibim df. Kalkış tarihini, planlanan kalkış saatini ve tren şirketini listeleyen bir tren tarifesidir.Pandas DataFrame: eşit olmayan birden çok öğeye erişin, =!

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 
.... 

Şimdi, ben sütununda "Tren" içindeki tüm öğeleri "Deutsche Bahn" seçmek için istiyorum diyelim.

Ben Şimdi

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

kullanmak istiyorsunuz, ben Deutsche Bahn ve İngiliz Raylar ve SNCF dışındaki tüm trenler seçebilirsiniz nasıl. Aynı anda bu ürününü nasıl seçebilirim?

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

ve

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

ama bir komuta içine bu nasıl birleştirileceği emin değilim. çalışmıyor.

cevap

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

isin verilen listede yer almaktadır df['Train'] değerleri döndürür ve başında ~ aslında bir not operatörüdür.

başka çalışma ama daha uzun sözdizimi olacaktır:

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