我有以下Pandas DataFrame对象df
.这是列出出发日期,预定出发时间和火车公司的列车时刻表.
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']
现在,我如何选择除DeutscheBahn和British Rails以及SNCF之外的所有列车.我怎样才能同时选择不属于这些的项目?
notDB = df[df['Train'] != 'DeutscheBahn']
和
notSNCF = df[df['Train'] != 'SNCF']
但我不确定如何将这些组合成一个命令.
df[df['Train'] != 'DeutscheBahn', 'SNCF']
不起作用.
df[~df['Train'].isin(['DeutscheBahn', 'SNCF'])]
isin
返回df['Train']
给定列表中的值,并且~
开头本质上是一个not
运算符.
另一种工作但更长的语法是:
df[(df['Train'] != 'DeutscheBahn') & (df['Train'] != 'SNCF')]