Ich würde gerne wissen, wie Zeilen in einem Pandas-Dataframe aufbewahrt werden, in dem mehr als drei seiner Säulen Werte von mehr als 0,8 haben, ein Beispiel:

companyInfo = pd.DataFrame()
companyInfo['col1'] = [0,0,0,0,0]
companyInfo['col2'] = [0,0.9,0,0,0]
companyInfo['col3'] = [0,0,0.85,0,0]
companyInfo['col4'] = [0,0,0,0,0]
companyInfo['col5'] = [0,0.2,0,0,0.09]
companyInfo['col6'] = [0,0,0.3,0,0.87]
companyInfo['col7'] = [0,0,0.2,0.4,0.82]

In diesem Fall würde nur die letzte Zeile aufbewahrt, da es mindestens 3 Säulen mehr als 0,8 aufweist

1
oli 3 Juni 2021 im 01:50

1 Antwort

Beste Antwort

Sie können die Maskierung für Werte erstellen, die größer als 0.8 sind, und dann {sum()} auf axis=1 aufrufen und dann prüfen, ob die Summe größer als 3 ist

companyInfo[(companyInfo>0.8).sum(axis=1)>3]

AUSGABE :

Columns: [col1, col2, col3, col4, col5, col6, col7]
Index: []

leer, da Sie keinen Wert haben, der diesen Kriterien nicht entspricht

Aber für einige andere Kriterien:

companyInfo[(companyInfo>=0.2).sum(axis=1)>=3]

#output
   col1  col2  col3  col4  col5  col6  col7
2     0   0.0  0.85     0   0.0   0.3   0.2
2
Don'tAccept 2 Juni 2021 im 22:58