Ich habe eine pd.DataFrame
, die durch Parsen einiger Excel-Tabellen erstellt wurde. Eine Spalte enthält leere Zellen. Im Folgenden finden Sie beispielsweise die Ausgabe für die Häufigkeit dieser Spalte. In 32320 Datensätzen fehlen Werte für Tenant .
>>> value_counts(Tenant, normalize=False)
32320
Thunderhead 8170
Big Data Others 5700
Cloud Cruiser 5700
Partnerpedia 5700
Comcast 5700
SDP 5700
Agora 5700
dtype: int64
Ich versuche, Zeilen zu löschen, in denen Tenant fehlt, die .isnull()
Option erkennt jedoch die fehlenden Werte nicht.
>>> df['Tenant'].isnull().sum()
0
Die Spalte hat den Datentyp "Objekt". Was passiert in diesem Fall? Wie kann ich Datensätze löschen, bei denen der Mieter fehlt?
Pandas erkennen einen Wert als null, wenn es sich um ein np.nan
Objekt handelt, das wie NaN
im DataFrame gedruckt wird. Ihre fehlenden Werte sind wahrscheinlich leere Zeichenfolgen, die Pandas nicht als null erkennt. Um dies zu beheben, können Sie die leeren Stiche (oder was auch immer sich in Ihren leeren Zellen befindet) np.nan
mithilfe von Objekten in Objekte konvertieren replace()
und dann dropna()
Ihren DataFrame aufrufen, um Zeilen mit null Mandanten zu löschen.
Zur Demonstration erstellen wir einen DataFrame mit einigen zufälligen Werten und einigen leeren Zeichenfolgen in einer Tenants
Spalte:
>>> import pandas as pd
>>> import numpy as np
>>>
>>> df = pd.DataFrame(np.random.randn(10, 2), columns=list('AB'))
>>> df['Tenant'] = np.random.choice(['Babar', 'Rataxes', ''], 10)
>>> print df
A B Tenant
0 -0.588412 -1.179306 Babar
1 -0.008562 0.725239
2 0.282146 0.421721 Rataxes
3 0.627611 -0.661126 Babar
4 0.805304 -0.834214
5 -0.514568 1.890647 Babar
6 -1.188436 0.294792 Rataxes
7 1.471766 -0.267807 Babar
8 -1.730745 1.358165 Rataxes
9 0.066946 0.375640
Jetzt ersetzen wir alle leeren Zeichenfolgen in der Tenants
Spalte durch np.nan
Objekte wie folgt:
>>> df['Tenant'].replace('', np.nan, inplace=True)
>>> print df
A B Tenant
0 -0.588412 -1.179306 Babar
1 -0.008562 0.725239 NaN
2 0.282146 0.421721 Rataxes
3 0.627611 -0.661126 Babar
4 0.805304 -0.834214 NaN
5 -0.514568 1.890647 Babar
6 -1.188436 0.294792 Rataxes
7 1.471766 -0.267807 Babar
8 -1.730745 1.358165 Rataxes
9 0.066946 0.375640 NaN
Jetzt können wir die Nullwerte löschen:
>>> df.dropna(subset=['Tenant'], inplace=True)
>>> print df
A B Tenant
0 -0.588412 -1.179306 Babar
2 0.282146 0.421721 Rataxes
3 0.627611 -0.661126 Babar
5 -0.514568 1.890647 Babar
6 -1.188436 0.294792 Rataxes
7 1.471766 -0.267807 Babar
8 -1.730745 1.358165 Rataxes
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen