user504909
user504909

Reputation: 9549

get index column error from dataframe from

I simply want to get index column.

import pandas as pd
df1=pd.read_csv(path1, index_col='ID') 
df1.head()


       VAR1  VAR2  VAR3  OUTCOME
ID
28677    28     1   0.0        0
27170    59     1   0.0        1
39245    65     1   0.0        1
31880    19     1   0.0        0
41441    24     1   0.0        1

I can get many columns like:

df1["VAR1"]

ID
28677     28
27170     59
39245     65
31880     19
41441     24
31070     77
39334     63
....
38348     23
38278     52
28177     58

but, I cannot get index column:

>>> df1["ID"]
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\pandas\indexes\base.py", line 2134, in get_loc
return self._engine.get_loc(key)
File "pandas\index.pyx", line 132, in pandas.index.IndexEngine.get_loc (pandas\index.c:4433)
File "pandas\index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas\index.c:4279)
File "pandas\src\hashtable_class_helper.pxi", line 732, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13742)
File "pandas\src\hashtable_class_helper.pxi", line 740, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13696)
KeyError: 'ID'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2059, in __getitem__
return self._getitem_column(key)
File "C:\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2066, in _getitem_column
return self._get_item_cache(key)
File "C:\Anaconda3\lib\site-packages\pandas\core\generic.py", line 1386, in _get_item_cache
values = self._data.get(item)
File "C:\Anaconda3\lib\site-packages\pandas\core\internals.py", line 3543, in get
loc = self.items.get_loc(item)
File "C:\Anaconda3\lib\site-packages\pandas\indexes\base.py", line 2136, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas\index.pyx", line 132, in pandas.index.IndexEngine.get_loc (pandas\index.c:4433)
File "pandas\index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas\index.c:4279)
File "pandas\src\hashtable_class_helper.pxi", line 732, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13742)
File "pandas\src\hashtable_class_helper.pxi", line 740, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13696)
KeyError: 'ID'

I want to get the list of index column. how to do it? why I get error?

If I want to merge two dataframe use the index column, how to do it?

Upvotes: 1

Views: 1322

Answers (2)

Alexey Trofimov
Alexey Trofimov

Reputation: 5007

You can use df.index property:

df.index (or df.index.values for numpy array)

pd.Series(df.index)

Upvotes: 0

jezrael
jezrael

Reputation: 862671

First column is index so for select use:

print (df1.index)
Int64Index([28677, 27170, 39245, 31880, 41441], dtype='int64', name='ID')

But if possible MultiIndex in index use get_level_values:

print (df1.index.get_level_values('ID'))
Int64Index([28677, 27170, 39245, 31880, 41441], dtype='int64', name='ID')

Upvotes: 1

Related Questions