我需要读取一个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=';')