2016-07-25 2 views
0

Я пытаюсь понять смысл вывода следующего кода:панды dataframe: смысл .index

import pandas as pd 

index = ['index1','index2','index3'] 
columns = ['col1','col2','col3'] 
df = pd.DataFrame([[1,2,3],[1,2,3],[1,2,3]], index=index, columns=columns) 
print df.index 

Я ожидал бы только список, содержащий индекс dataframe:

[ 'index1, 'index2', 'index3']

однако выход:

индекс ([u'index1', u'index2' , u'index3 '], DTYPE =' объект ')

ответ

0

Это довольно выход pandas.Index объекта, если вы посмотрите на тип он показывает тип класса:

In [45]: 
index = ['index1','index2','index3'] 
columns = ['col1','col2','col3'] 
df = pd.DataFrame([[1,2,3],[1,2,3],[1,2,3]], index=index, columns=columns) 
df.index 

Out[45]: 
Index(['index1', 'index2', 'index3'], dtype='object') 

In [46]: 
type(df.index) 

Out[46]: 
pandas.indexes.base.Index 

Так что это свидетельствует о том, что у вас есть Index типа с элементами «INDEX1» и так далее, DTYPE является object которого str

если вы не передадите ваш список строк для индекса вы получите индекс ИНТА по умолчанию, который является новым типом RangeIndex:

In [47]: 
df = pd.DataFrame([[1,2,3],[1,2,3],[1,2,3]], columns=columns) 
df.index 

Out[47]: 
RangeIndex(start=0, stop=3, step=1) 

Если вы хотите, список значений:

In [51]:  
list(df.index) 

Out[51]: 
['index1', 'index2', 'index3'] 
+0

Почему DTYPE является «объект», а не что-то более конкретно (например, ул, список и т.д.)? – qstax

+0

Это из 'numpy': http://docs.scipy.org/doc/numpy/reference/arrays.scalars.html, так что по существу, как' dtype' представляется, когда он не является фундаментальным типом, а не boolean, int, float, datetime, category, поэтому str, lists, dicts, sets будут сгруппированы в 'object' – EdChum

Смежные вопросы