[FIXED] Teilmenge des Datenrahmens, in der ein Spaltentypwert unter einem Schwellenwert liegt

Ausgabe

Dies ist mein Datenrahmen:

df = pd.DataFrame(
    {'tid': [11, 12, 12, 14, 14],
 'price': [846.94,412.65,1295.38,741.24,695.47],
 'item': ['A', 'B', 'A', 'B', 'A']}
)
df
    tid     price   item
0   11      846.94    A
1   12      412.65    B
2   12     1295.38    A
3   14      741.24    B
4   14      695.47    A

Ich möchte alle Zeilen dfaußer wo A > 1_000in der itemSpalte.

Erwartete Ergebnisse:

    tid     price   item
0   11      846.94    A
1   12      412.65    B
3   14      741.24    B
4   14      695.47    A

Lösung

Sie können die boolesche Indizierung verwenden :

# is item A?
m1 = df['item'].eq('A')
# is the price > 1000?
m2 = df['price'].gt(1000)

# keep if both conditions are not met
out = df[~(m1&m2)]

Alternative Bedingungen unter Verwendung der Äquivalenz von De Morgan :

# is the item not A?
m1 = df['item'].ne('A')
# is the price ≤ 1000?
m2 = df['price'].le(1000)

# keep the rows if either condition is met
out = df[m1|m2]

Ausgang:

   tid   price item
0   11  846.94    A
1   12  412.65    B
3   14  741.24    B
4   14  695.47    A


Beantwortet von –
mozway


Antwort geprüft von –
Timothy Miller (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like