2016-07-25 11 views
0

Ich versuche, die Bedeutung der Ausgabe des folgenden Codes zu verstehen:Pandas Datenrahmen: Die Bedeutung der .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 

Ich würde erwarten, nur eine Liste mit dem Index des Datenrahmen:

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

jedoch die Ausgabe ist:

Index ([u'index1', u'index2' , u'index3 '], dTYPE =' object ')

Antwort

0

Dies ist ziemlich Ausgang des pandas.Index Objekts, wenn man sich die Art aussehen zeigt es den Klassentyp:

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 

Also, was es zeigt, ist, dass Sie einen Index Typen mit den ‚index1‘ Elementen und so weiter, ist die dtype object die str

ist, wenn Sie nicht Ihre Liste von Strings für den Index übergeben Sie den Standard-int Index erhalten, die den neuen Typ ist 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) 

Wenn Sie eine Liste der Werte gesucht:

In [51]:  
list(df.index) 

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

Warum dtype ist ein ‚Objekt‘ und nicht etwas speziellere (wie str, Liste, etc.)? – qstax

+0

Es ist von 'numpy': http://docs.scipy.org/doc/numpy/reference/arrays.scalars.html also ist es im Wesentlichen, wie der' dtype' dargestellt wird, wenn es kein grundlegender Typ ist, also nicht boolean, int, float, datetime, category, also str, lists, dicts, sets werden alle in "object" zusammengefasst – EdChum

Verwandte Themen