我正在编写一个代码来使用 pandas
读取 csv
文件,我看到了一些奇怪的软件包功能 . 我的文件有列名,我想忽略,所以我使用 header = 0
或 'infer'
而不是 None
. 但我看到一些奇怪的东西 .
当我使用 None
并且我想得到一个特定的列时,我只需要做 df[column_index]
但是当我使用 0
或 'infer'
时,我需要做 df.ix[:,column_index]
来获取列,否则,对于 df[column_index]
我收到以下错误:
Traceback(最近一次调用最后一次):文件“/home/sarvagya/anaconda3/envs/tf/lib/python3.6/site-packages/pandas/core/indexes/base.py”,第2525行,在get_loc中返回self ._engine.get_loc(key)文件“pandas / _libs / index.pyx”,第117行,在pandas._libs.index.IndexEngine.get_loc文件“pandas / _libs / index.pyx”第139行,在pandas._libs中 . index.IndexEngine.get_loc文件“pandas / _libs / hashtable_class_helper.pxi”,第1265行,在pandas._libs.hashtable.PyObjectHashTable.get_item文件“pandas / _libs / hashtable_class_helper.pxi”,第1273行,在pandas._libs.hashtable中 . PyObjectHashTable.get_item KeyError:column_index在处理上述异常期间,发生了另一个异常:Traceback(最近一次调用last):File“/ home / sarvagya / anaconda3 / envs / tf / lib / python3中的文件”“,第1行 . 6 / site-packages / pandas / core / frame.py“,第2139行,在getitem中返回self._getitem_column(key)文件”/home/sarvagya/anaconda3/envs/tf/lib/python3.6/site-packages/ pandas / core / frame.py“,第2146行,在_getitem_column中返回sel f._get_item_cache(key)文件“/home/sarvagya/anaconda3/envs/tf/lib/python3.6/site-packages/pandas/core/generic.py”,第1842行,在_get_item_cache values = self._data.get (项目)文件“/home/sarvagya/anaconda3/envs/tf/lib/python3.6/site-packages/pandas/core/internals.py”,第3843行,在get loc = self.items.get_loc(item)中文件“/home/sarvagya/anaconda3/envs/tf/lib/python3.6/site-packages/pandas/core/indexes/base.py”,第2527行,在get_loc中返回self._engine.get_loc(self._maybe_cast_indexer(密钥))文件“pandas / _libs / index.pyx”,第117行,在pandas._libs.index.IndexEngine.get_loc文件“pandas / _libs / index.pyx”,第139行,在pandas._libs.index.IndexEngine中 . get_loc文件“pandas / _libs / hashtable_class_helper.pxi”,第1265行,位于pandas._libs.hashtable.PyObjectHashTable.get_item文件“pandas / _libs / hashtable_class_helper.pxi”,第1273行,pandas._libs.hashtable.PyObjectHashTable.get_item KeyError :column_index
有人可以帮忙吗?为什么会这样?
1 回答
看起来需要2个参数 -
header=None
和skiprows=1
如果要忽略原始列名称为默认RangeIndex
.因为如果在第一行中仅使用
header=None
获取原始列名称 .并
header=0
读取第一行到DataFrame
的列名 .Sample :
按位置选择:
按列名选择:
没有列名
1
,所以: