pandas dataframe: semnificația lui .index (Programare, Python, Pandas, Dataframe)

qstax a intrebat.

Încerc să înțeleg semnificația ieșirii din următorul cod:

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

M-aș aștepta la o listă care să conțină doar indexul cadrului de date:

[‘index1, ‘index2’, ‘index3’]

însă rezultatul este următorul:

Index([u’index1′, u’index2′, u’index3′], dtype=’object’)

1 răspunsuri
EdChum

Aceasta este ieșirea destul de frumoasă a pandas.Index object, dacă vă uitați la tipul arată tipul clasei:

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

Deci, ceea ce arată este că aveți un Index tip cu elementele „index1” și așa mai departe, tipul este object care este str

dacă nu ați trecut lista de șiruri de caractere pentru index, veți obține indexul implicit int, care este noul tip. 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)

Dacă ați fi dorit o listă de valori:

In [51]:    
list(df.index)

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

Comentarii

  • De ce dtype este un „obiect” și nu ceva mai specific (cum ar fi str, list, etc.)? –  > Por qstax.
  • Este din numpy: docs.scipy.org/doc/numpy/reference/arrays.scalars.html deci este în esență modul în care dtype este reprezentat atunci când nu este un tip fundamental, deci nu este boolean, int, float, datetime, category, deci str, lists, dicts, sets vor fi toate incluse în object –  > Por EdChum.