2017-01-04 29 views
0

從大熊貓的文件,我得到Series.axes將返回一個列表,它確實是一個列表列表從Series.axes返回看起來並不像一個正常的列表

$ python3 process_data.py 
<class 'list'> 

然而,當我嘗試打印列表中的字符串表示,我得到這個

要運行直接打印

print(row.axes) 


$ python3 process_data.py 
Index(['rank', 'name','high', 'low', 'analysis'], 
     dtype='object') 

看起來並不像一個正常的名單都沒有。

>>> [1,2,3,4,5] 
[1, 2, 3, 4, 5] 

我仍然可以做list_name[0][index],這就好比一個二維列表訪問怪異列表中的信息。我的意思是如果它的內部類型是列表,它怎麼會有這種行爲。如果它是一個像對象一樣的numpy數組,爲什麼內部類型仍然是列表。

編輯:

def process_nextfile(date, catagory): 
    df1 = pd.read_csv('{}all_csv/{}/catagory{}'.format(BASE_DIR, date, catagory), header = None, names = CATAGORY_HEADER[catagory-1]) 
    for index, row in df1.iterrows(): 
     print(row.axes.__name__) 
     break 

if __name__ == '__main__': 
    process_nextfile('2016-04-05', 2) 
+0

我不要使用熊貓,但你嘗試過'row.axes。 __name__'? – tyteen4a03

+0

@ tyteen4a03''list'object has no attribute'__name__' ' – Bobby

+2

請提供[mcve] – MYGz

回答

1

當您使用iterrows(),每一行是一個熊貓系列,該axes屬性返回標籤/或索引列表。那麼,什麼是包含在列表中的索引對象,看​​看這個簡單的例子:

s = pd.Series([1,2,3]) 
s.axes 
# [RangeIndex(start=0, stop=3, step=1)] 

爲了得到一個正常的列表,你可以訪問索引對象,然後將其轉換爲一個列表:

s.axes[0].tolist() 
# [0, 1, 2] 
相關問題