错误: pandas 哈希表密钥错误 [英] Error: pandas hashtable keyerror

查看:134
本文介绍了错误: pandas 哈希表密钥错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用熊猫成功读取了一个csv文件.当我尝试从数据框中打印特定列时,出现键盘错误.因此,我正在共享错误代码.

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:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\frame.py", line 1997, in __getitem__
    return self._getitem_column(key)
  File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2004, in _getitem_column
    return self._get_item_cache(key)
  File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\generic.py", line 1350, in _get_item_cache
    values = self._data.get(item)
  File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\internals.py", line 3290, in get
    loc = self.items.get_loc(item)
  File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\indexes\base.py", line 1947, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas\index.pyx", line 137, in pandas.index.IndexEngine.get_loc (pandas\index.c:4154)
  File "pandas\index.pyx", line 159, in pandas.index.IndexEngine.get_loc (pandas\index.c:4018)
  File "pandas\hashtable.pyx", line 675, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12368)
  File "pandas\hashtable.pyx", line 683, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12322)
KeyError: 'review'

**

有人可以帮我吗?

推荐答案

我认为最好是先调查一下,什么是真实的列名,如果转换为列表更好,会出现一些空格或类似的内容:

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.列名称中的空格(也许也在数据中)

解决方案是 strip 列名中的空格:

Solutions are strip whitespaces in column names:

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

或将参数skipinitialspace添加到 read_csv :

Or add parameter skipinitialspace to read_csv:

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

2.默认使用不同的分隔符,

2.different separator as default ,

解决方案是添加参数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)

您在列名中获得空格,因此需要1.solutions:

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

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

这篇关于错误: pandas 哈希表密钥错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆