Ich versuche, eine Excel-Datei mit Pandas zu analysieren.Pandas: KeyError beim Versuch, Wert von df.loc in Excel-Datei zu drucken
import pandas as pd
import xlrd
xl_file = pd.ExcelFile("file.xlsx")
df = xl_file.parse("Sheet1")
Nun, wenn ich einen Wert (name
) von dem Blatt erhalten:
if len(df.loc[df["Col A"].str.contains("John"), "Col B"]) > 0:
name = df.loc[df["Col A"].str.contains("John"), "Col B"]
Und dann print name
, das Ergebnis ist:
1 John Doe Name: Col B, dtype: object
oder print name.values
:
[u'John Doe']
Aber wenn ich versuche, die tatsächliche Zeichenfolge mit print name[0]
abzurufen, ich KeyError
:
File "pandas/core/series.py", line 583, in __getitem__ result = self.index.get_value(self, key) File "pandas/indexes/base.py", line 1980, in get_value tz=getattr(series.dtype, 'tz', None)) File "pandas/index.pyx", line 103, in pandas.index.IndexEngine.get_value (pandas/index.c:3332) File "pandas/index.pyx", line 111, in pandas.index.IndexEngine.get_value (pandas/index.c:3035) File "pandas/index.pyx", line 159, in pandas.index.IndexEngine.get_loc (pandas/index.c:4018) File "pandas/hashtable.pyx", line 303, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6610) File "pandas/hashtable.pyx", line 309, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6554) KeyError: 0
Was könnte das Problem sein?
Danke, ich vermute, meine Excel-Datei einen eigenen Index verwendet? (Heruntergeladen von Online-Quelle). Der Index für den Wert, nach dem ich gesucht habe, ist '[1]' und nicht '[0]'. – Winterflags
Ich fürchte, ich kenne die Beziehung zwischen Excel-Zeilennummern und Pandas-Indizes nicht. Aber da 'name' das Ergebnis der Filterung ist (Vorname John), haben Sie keine Möglichkeit im Voraus zu wissen, welche Indexwerte im Index enthalten sein werden oder nicht. – IanS