Ich habe einen Datensatz auf verschiedene Wetterstationen für mehrere Variablen basiert (Temperatur, Druck, etc.),Python Pandas - Gruppe entfernen, basierend auf kollektive NaN zählen
stationID | Time | Temperature | Pressure |...
----------+------+-------------+----------+
123 | 1 | 30 | 1010.5 |
123 | 2 | 31 | 1009.0 |
202 | 1 | 24 | NaN |
202 | 2 | 24.3 | NaN |
202 | 3 | NaN | 1000.3 |
...
Und ich möchte ‚stationID‘ entfernen Gruppen, die mehr als eine bestimmte Anzahl von NaNs haben (unter Berücksichtigung aller Variablen in der Zählung).
Wenn ich versuche,
df.loc[df.groupby('station')['temperature'].filter(lambda x: len(x[pd.isnull(x)]) < 30).index]
es funktioniert, wie hier gezeigt: Python pandas - remove groups based on NaN count threshold
Aber das obige Beispiel berücksichtigt 'Temperatur' nur. Also, Wie kann ich die kollektive Summe der NaNs der verfügbaren Variablen berücksichtigen?: Ich möchte eine Gruppe entfernen, in der die kollektive Summe von NaNs in [variable1, variable2, variable3, ...] kleiner als ein Schwellenwert ist.
wow! es ist perfekt! – MaxU
@MaxU Danke. Es scheint nicht so, als hätten wir eine Funktion, um über den Datenrahmen zu summieren. – Psidom
Super !!! Ich danke dir sehr! – mmeclimate