2016-09-15 2 views
2

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?

Antwort

3

name ist eine Serie, und 0 ist nicht im Index der Serie (überprüfen Sie name.index). Dies erklärt die Fehlermeldung.

Wenn Sie das erste Element in der Serie wählen, tun:

name.iloc[0] 
+0

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

+1

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

Verwandte Themen