我需要读取一个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文件并使用了它们。
非常感谢!

最佳答案

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

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

07-27 13:28