Ich benutze drop() um Zeilen mit Müllwerten (NaN, NaT, '') aus bestimmten Spalten zu löschen.pandas drop() - Fehler - Label [] nicht in Achse
for index, row in user_data_to_clean.iterrows():
if row.email != row.email or row.email == '' or row.email == ' ':
user_data_to_clean.drop(index, inplace=True)
email_count = email_count + 1
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-22-bb0cb6d83902> in <module>()
24
25 if row.email != row.email or row.email == '' or row.email == ' ':
---> 26 user_data_to_clean.drop(index, inplace=True)
27 email_count = email_count + 1
28
/home/eyebell/local_bin/janacare/virtenv/lib/python2.7/site-packages/pandas/core/generic.pyc in drop(self, labels, axis, level, inplace, errors)
1871 new_axis = axis.drop(labels, level=level, errors=errors)
1872 else:
-> 1873 new_axis = axis.drop(labels, errors=errors)
1874 dropped = self.reindex(**{axis_name: new_axis})
1875 try:
/home/eyebell/local_bin/janacare/virtenv/lib/python2.7/site-packages/pandas/indexes/base.pyc in drop(self, labels, errors)
2964 if errors != 'ignore':
2965 raise ValueError('labels %s not contained in axis' %
-> 2966 labels[mask])
2967 indexer = indexer[~mask]
2968 return self.delete(indexer)
ValueError: labels [124] not contained in axis
Die betreffende Zeile ist:
print user_data_to_clean.iloc[124]
user_id 656
first_name xxxxxxx.A
last_name NaN
username xxxxxxxx
email [email protected]
phone_number 7123372613
date_joined 2013-09-27 00:00:00
first_login NaT
last_activity NaT
Name: 182, dtype: object
Was ist das Problem hier?
Ich weiß, eine alternative Möglichkeit, mein Ziel zu erreichen, ist die Zeilen zu zerschneiden, , aber ich möchte verstehen, was hier falsch läuft!
Können Sie 'user_data_to_clean.loc [124]' stattdessen überprüfen? "iloc" betrachtet die Position der Zeile, nicht das Label. Sie versuchen möglicherweise, eine Zeile zu löschen, die zuvor gelöscht wurde. – ayhan
@ayhan: Danke, stellt sich heraus, dass das mein Fehler war. Ich ließ Reihen fallen, die bereits fallen gelassen worden waren. – gprakhar