1

I am trying to drop rows in my df where SPCD == 104, drop rows where Age >= 950 and for some reason I can't for the life of me figure out how to do it.

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

This is a line of code I've tried, but it ended up deleting every entry of SPCD 104. I tried it with <= and >= both resulted in the same thing.

So the initial df may look like:

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

What I'd like to see is:

    SPCD   Age
0   104    300
1   104    950
2   133    200
3   104    400
4   133    100
sarakota
  • 63
  • 1
  • 1
  • 6

2 Answers2

4

Negate your condition:

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

This outputs:

   SPCD  Age
1   104  300
3   133  200
4   104  400
5   133  100
BrokenBenchmark
  • 18,126
  • 7
  • 21
  • 33
0

What you expect as output:

What I'd like to see is:

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

What you explain:

I am trying to drop rows in my df where SPCD == 104, drop rows where Age >= 950 and for some reason I can't for the life of me figure out how to do it.

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

   SPCD  Age
1   104  300
3   133  200
4   104  400
5   133  100
Corralien
  • 109,409
  • 8
  • 28
  • 52