Python pandas groupby-Taste Fehler in der pandas.hashtable.PyObjectHashTable.get_item
Ich mache das, was scheint eine einfache group by in Pandas. Die Spalte ist ein string-Spalte mit keine Nans oder seltsame Zeichenfolgen. Aber ich bekomme immer folgende Fehlermeldung. Weiß jemand, warum diese Mächte geschehen? Ich fühle mich wie kann es damit etwas zu tun haben mit meinen Daten, aber es scheint alles ok zu sein...
Ich bin mit by_user = df.groupby('User')
und der stack-trace:
by_user = df.groupby('User')
File "c:\Anaconda\lib\site-packages\pandas\core\generic.py", line 2773, in groupby
sort=sort, group_keys=group_keys, squeeze=squeeze)
File "c:\Anaconda\lib\site-packages\pandas\core\groupby.py", line 1142, in groupby
return klass(obj, by, **kwds)
File "c:\Anaconda\lib\site-packages\pandas\core\groupby.py", line 388, in __init__ level=level, sort=sort)
File "c:\Anaconda\lib\site-packages\pandas\core\groupby.py", line 2041, in _get_grouper
gpr = obj[gpr]
File "c:\Anaconda\lib\site-packages\pandas\core\frame.py", line 1678, in __getitem__
return self._getitem_column(key)
File "c:\Anaconda\lib\site-packages\pandas\core\frame.py", line 1685, in _get item_column
return self._get_item_cache(key)
File "c:\Anaconda\lib\site-packages\pandas\core\generic.py", line 1052, in _ge
t_item_cache
values = self._data.get(item)
File "c:\Anaconda\lib\site-packages\pandas\core\internals.py", line 2565, in get
loc = self.items.get_loc(item)
File "c:\Anaconda\lib\site-packages\pandas\core\index.py", line 1181, in get_loc
return self._engine.get_loc(_values_from_object(key))
File "index.pyx", line 129, in pandas.index.IndexEngine.get_loc (pandas\index.
c:3656)
File "index.pyx", line 149, in pandas.index.IndexEngine.get_loc (pandas\index.
c:3534)
File "hashtable.pyx", line 696, in pandas.hashtable.PyObjectHashTable.get_item
(pandas\hashtable.c:11911)
File "hashtable.pyx", line 704, in pandas.hashtable.PyObjectHashTable.get_item
(pandas\hashtable.c:11864)
KeyError: 'User'
df.info():
User Code 175167 non-null object
Version 175167 non-null object
Date Accessed 175167 non-null datetime64[ns]
Series 175167 non-null object
Software 175167 non-null object
User 175167 non-null object
- Kannst du die Ausgabe von
df.info
ist auch'User'
tatsächlich eine der Spalten? - seltsamerweise (?) selbst wenn die Spalte nicht gefunden, das sollte auch nicht erhöhen.
- Ich habe die
df.info
.User
ist es, es gibt keine null-Werte zulassen, ist es eine einfache Sammlung von Namen, und diese Namen haben keine seltsamen Zeichen in Ihnen. Dieser df ist die Schaffung vonconcat
auf einen Haufen *.xlsx-Dateien. - Nur um zu überprüfen, noch einmal-denn dies ist genau das, was würde passieren, wenn es ein zusätzliches Leerzeichen am Ende der
User
- könnte Sie Bearbeiten, um die post der Ausgabe vondf.columns
? - Nur für die Fertigstellung bitte posten Sie Ihre numpy, pandas und python-version, danke
- Das ist, was es war... bei mir lief
df.columns
ich habeUser
stattUser
. Wenn Sie wollen, dass die Antwort, ich werde es auszuwählen. Von jetzt an Leerzeichen in Spalten geht in meine Fehler zu überprüfen. Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
[verschoben aus den Kommentaren]
Es ist leicht zu übersehen nachfolgende Leerzeichen in Spaltennamen, aber Sie können
df.columns
manuell:(Zu schälen zurück der Vorhang ein wenig, ich vermutete so etwas wie dieses vor sich geht, weil wenn ich verspottet, mein eigenes DataFrame und schaute
df.info()
, ich wollte nicht sehen, wie viel Platz zwischen den Namen der Spalten und die zahlen als Ihre Ausgabe schien zu zeigen.)