当前位置: 首页 > 面试题库 >

Python-错误:熊猫哈希表密钥错误

郑俊彦
2023-03-14
问题内容

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

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'

**

有人可以帮我吗?


问题答案:

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

print (reviews_new.columns.tolist())
我认为可能有2个问题(显然):

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

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

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

或将参数添加skipinitialspaceread_csv

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'] 
          ^        ^


 类似资料:
  • 我已经完成了一个android应用程序的开发,该应用程序使用facebook sdk与facebook集成。目前,我对这个应用程序没有任何问题需要解决,因为它功能齐全,运行良好——但尽管如此,我相信即使应用程序正在运行,我仍然不完全理解Android密钥散列是什么 1)据我所知,facebook sdk为开发者提供了一个独特的应用程序id,以了解他们与谁“交谈”,这样他们也可以控制谁是谁之类的人,

  • 问题内容: 我正在寻找一种使用mongoose将帐户保存到MongoDB的好方法。 我的问题是:密码是异步哈希的。设置器将无法在这里工作,因为它只能同步工作。 我考虑了两种方法: 创建模型的实例,并将其保存在哈希函数的回调中。 在“保存”上创建一个预钩子 这个问题有什么好的解决办法吗? 问题答案: mongodb博客上有一篇很棒的文章,详细介绍了如何实现用户身份验证。 http://blog.mo

  • 如果我在hashmap中输入一个键和值,并且基于键hashcode生成的索引大于15,并且映射大小仍然小于阈值(即12),会发生什么? 提前谢谢。

  • 我无法让我的应用程序允许脸谱网登录。每次用户试图登录脸谱网并用他们的FB验证我的应用程序时,都会给我这个错误: 无效的密钥散列。它们的密钥散列xxxxxxxxxx=不匹配任何存储的密钥散列。在http://developers.facebook.com/apps/xxxxxxxx配置你的应用密钥散列 我已经尝试过通过OpenSSL工具创建一个新的密钥哈希,如下所示: 这样做会给我一个密钥哈希,然后

  • 我按照步骤创建哈希键。 > 下载的openssl 解压缩并复制bin文件夹中的所有文件,包括openssl.exe 然后我在OpenSSL.exe终端窗口上使用了以下命令 keytool-exportcert-alias androiddebugkey-keystore c:\users\joelle.android\debug.keystore openssl sha1-binary opens

  • keytool-exportcert-alias diego-keystore“c:\users\diego\desktop\celuchat.keystore”“c:\openssl\bin\openssl.exe”sha1-binary“c:\openssl\bin\openssl.exe”base64 celuchat.keystore是我在导出签名的应用程序时使用的密钥库,当keytool