熊猫和熊猫之间的区别

时间:2019-09-05 10:39:33

标签: python pandas dataframe

我有一个名为bas的df。例如,它看起来像这样:

    nat rac numberOnly  
0   DD  AR  548484554
1   AD  AR  168484245
2   FF  COL 484984554
3   WW  DE  484845225
...

它有50k +行。我尝试仅获取rac == AR or COL的记录。

我写了这段代码:

AR = bas.where(bas.rac == "AR").dropna()
COL = bas.where(bas.rac == "COL").dropna()

DF = pd.DataFrame()
DF = DF.append(AR)
DF = DF.append(COL)

df的Len是27429。但是代码看起来不太好。特别是我想稍后过滤更多rac。因此,我决定以这种方式对其进行重新编码:

DF = bas.where(bas.rac == ("AR" or "COL")).dropna()

在这种情况下,DF有27196行。

为什么?这有什么区别?哪种方法更好?也许我应该改用其他东西吗?

1 个答案:

答案 0 :(得分:1)

您所做的肯定不会起作用。您正在寻找isin

df[df.rac.isin(['AR', 'COL'])]

   nat  rac  numberOnly
0  DD   AR   548484554
1  AD   AR   168484245
2  FF  COL   484984554