Python显示['variable']不在索引中,但'variable'在

时间:2018-03-31 03:38:33

标签: python pandas indexing

我需要读取一个csv文件,所以我有以下代码:

import seaborn as sns
import pandas as pd
data=pd.read_csv("myfile.csv")

十,如果我跑

data.columns

我可以看到我有一个名为“armonia”,“letra”和“interprete”的列,有类似的东西

  

索引(['armonia; letra; interprete'],dtype ='object')

然后我运行newdata=data[["armonia","letra"]],我收到以下错误:

  

KeyError:“['armonia''letra']不在索引”

预先确定:

KeyError                                  Traceback (most recent call last)
<ipython-input-26-f1fc72f6385b> in <module>()
----> 1 nuevoss=nuevos[["armonia","letra"]]
~\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
   2131         if isinstance(key, (Series, np.ndarray, Index, list)):
   2132             # either boolean or fancy integer index
-> 2133             return self._getitem_array(key)
   2134         elif isinstance(key, DataFrame):
   2135             return self._getitem_frame(key)
~\Anaconda3\lib\site-packages\pandas\core\frame.py in _getitem_array(self, 
key)
   2175             return self._take(indexer, axis=0, convert=False)
   2176         else:
-> 2177             indexer = self.loc._convert_to_indexer(key, axis=1)
   2178             return self._take(indexer, axis=1, convert=True)
   2179 
~\Anaconda3\lib\site-packages\pandas\core\indexing.py in 
_convert_to_indexer(self, obj, axis, is_setter)
   1267                 if mask.any():
   1268                     raise KeyError('{mask} not in index'
-> 1269                                    .format(mask=objarr[mask]))
   1270 
   1271                 return _values_from_object(indexer)

我知道“armonia”和“letra”在索引中,.columns命令证明了这一点。 我看到一个人在github上有一个非常类似的问题,并报告了熊猫中的一个错误,但该解决方案对我不起作用Very similar problem resolved

有人知道我做错了什么吗?我是一个非常新手,但我之前已经在python中加载了CSV文件并与之合作。 ¡非常感谢你!

1 个答案:

答案 0 :(得分:2)

您的索引显示它包含一列,列名为'armonia;letra;interprete'。这是因为默认情况下read_csv假定您的分隔符是逗号,而不是分号。您可以通过正确指定分隔符来解决此问题:

data = read_csv('myfile.csv', sep=';')