簡體   English   中英

如果列 a == 值,刪除列 b 等於的行

[英]if column a == value, drop rows where column b equals

我試圖在我的 df 中刪除 SPCD == 104 的行,在 Age >= 950 的位置刪除行,出於某種原因,我一輩子都不知道該怎么做。

dropped_ages = d_age[ (d_age['SPCD'] == 104) & (d_age['Age'] >= 950) ]

這是我試過的一行代碼,但它最終刪除了 SPCD 104 的每個條目。我嘗試使用 <= 和 >= 都得到了同樣的結果。

所以最初的 df 可能看起來像:

    SPCD   Age
0   104    1100
1   104    300
2   104    950
3   133    200
4   104    400
5   133    100
6   104    1000

我想看到的是:

    SPCD   Age
0   104    300
1   104    950
2   133    200
3   104    400
4   133    100

否定你的條件:

d_age[(d_age["SPCD"] != 104) | (d_age["Age"] < 950)]

這輸出:

   SPCD  Age
1   104  300
3   133  200
4   104  400
5   133  100

您期望的 output:

我想看到的是:

>>> d_age[ ((d_age['SPCD'] == 104) & (d_age['Age'] <= 950)) | (d_age['Age'] <= 950) ]

   SPCD  Age
1   104  300
2   104  950
3   133  200
4   104  400
5   133  100

你解釋什么:

我試圖在我的 df 中刪除 SPCD == 104 的行,在 Age >= 950 的位置刪除行,出於某種原因,我一輩子都不知道該怎么做。

>>> d_age[ (d_age['SPCD'] != 104) | (d_age['Age'] < 950) ]

   SPCD  Age
1   104  300
3   133  200
4   104  400
5   133  100

暫無
暫無

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

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