错误:pandas哈希表键

2024-05-15 05:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经成功地使用pandas读取了csv文件。当我试图从数据帧中打印特定列时,我得到了keyerror。在此,我与错误分享代码。

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'

**

有人能帮我吗?


Tags: inselfpandasgetindexlocallineitem
2条回答
import pandas as pd
df=pd.read_csv("file.txt", skipinitialspace=True)
df.head()
df['review']

我认为首先是最好的调查,什么是真正的列名,如果转换成列表更好的是看到一些空格或类似的:

print (reviews_new.columns.tolist())

我认为可能有两个问题(很明显):

1.列名中的空格(也可能在数据中)

解决方案是列名中的^{}空白:

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

或者将参数skipinitialspace添加到^{}

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

2.不同的分隔符作为默认值,

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

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

相关问题 更多 >

    热门问题