我需要读取一个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文件并与之合作。 ¡非常感谢你!
答案 0 :(得分:2)
您的索引显示它包含一列,列名为'armonia;letra;interprete'
。这是因为默认情况下read_csv
假定您的分隔符是逗号,而不是分号。您可以通过正确指定分隔符来解决此问题:
data = read_csv('myfile.csv', sep=';')