簡體   English   中英

熊貓過濾或刪除行的多個條件

[英]Pandas filter or delete rows multiple conditions

我有這些數據boroughCounts與這些示例值:

    From    To          Count
9   None    Manhattan   302
10  Bronx   Bronx       51
11  Bronx   Manhattan   244
12  None    Brooklyn    8
13  Bronx   Queens      100
14  None    None        67

嘗試使用此處此處所述的方法過濾掉“發件人”和“收件人”列中的“ None值:

boroughCounts = boroughCounts[(boroughCounts.From != None) & (boroughCounts.To != None)]

boroughCounts = boroughCounts[(boroughCounts["From"] != None) & (boroughCounts["To"] != None)]

但這是行不通的,所有值都保持不變。 我使用錯了嗎,還是有更好的方法呢?

使用它,因為None是一個字符串,您需要用NaN替換該字符串:

df_out = boroughCounts.replace('None', np.nan).dropna()
df_out

輸出:

     From         To  Count
10  Bronx      Bronx     51
11  Bronx  Manhattan    244
13  Bronx     Queens    100

或者您可以通過使用“無”來使用布爾索引:

boroughCounts[(boroughCounts.From != "None") & (boroughCounts.To != "None")]

檢查您的數據框以了解類型。

boroughCounts.dtypes

這將告訴您他To和From cols是對象類型。 這可能意味着它們都是字符串或字符串和None類型的組合。 檢查您的無人之一。

type(boroughCounts.iloc[15].From)

這將向您顯示第15行的“從”列中的“無”是否為字符串。 如果是這樣,則需要更改查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM