Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
204 views
in Technique[技术] by (71.8m points)

python - Error: pandas hashtable keyerror

I have successfully read a csv file using pandas. When I am trying to print the a particular column from the data frame i am getting keyerror. Hereby i am sharing the code with the error.

import pandas as pd
reviews_new = pd.read_csv("D:\aviva.csv")
reviews_new['review']

**

reviews_new['review']
Traceback (most recent call last):
  File "<ipython-input-43-ed485b439a1c>", line 1, in <module>
    reviews_new['review']
  File "C:Users30216AppDataLocalContinuumAnaconda2libsite-packagespandascoreframe.py", line 1997, in __getitem__
    return self._getitem_column(key)
  File "C:Users30216AppDataLocalContinuumAnaconda2libsite-packagespandascoreframe.py", line 2004, in _getitem_column
    return self._get_item_cache(key)
  File "C:Users30216AppDataLocalContinuumAnaconda2libsite-packagespandascoregeneric.py", line 1350, in _get_item_cache
    values = self._data.get(item)
  File "C:Users30216AppDataLocalContinuumAnaconda2libsite-packagespandascoreinternals.py", line 3290, in get
    loc = self.items.get_loc(item)
  File "C:Users30216AppDataLocalContinuumAnaconda2libsite-packagespandasindexesase.py", line 1947, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandasindex.pyx", line 137, in pandas.index.IndexEngine.get_loc (pandasindex.c:4154)
  File "pandasindex.pyx", line 159, in pandas.index.IndexEngine.get_loc (pandasindex.c:4018)
  File "pandashashtable.pyx", line 675, in pandas.hashtable.PyObjectHashTable.get_item (pandashashtable.c:12368)
  File "pandashashtable.pyx", line 683, in pandas.hashtable.PyObjectHashTable.get_item (pandashashtable.c:12322)
KeyError: 'review'

**

Can someone help me in this ?

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think first is best investigate, what are real columns names, if convert to list better are seen some whitespaces or similar:

print (reviews_new.columns.tolist())

I think there can be 2 problems (obviously):

1.whitespaces in columns names (maybe in data also)

Solutions are strip whitespaces in column names:

reviews_new.columns = reviews_new.columns.str.strip()

Or add parameter skipinitialspace to read_csv:

reviews_new = pd.read_csv("D:\aviva.csv", skipinitialspace=True)

2.different separator as default ,

Solution is add parameter sep:

#sep is ;
reviews_new = pd.read_csv("D:\aviva.csv", sep=';')
#sep is whitespace
reviews_new = pd.read_csv("D:\aviva.csv", sep='s+')
reviews_new = pd.read_csv("D:\aviva.csv", delim_whitespace=True)

EDIT:

You get whitespace in column name, so need 1.solutions:

print (reviews_new.columns.tolist())
['Name', ' Date', ' review'] 
          ^        ^

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...