天天看點

Pandas——Dataframe行周遊幾種常用方法性能分析

pandas作為python資料分析的一大利器,為廣大資料分析人員使用。今天無意中,聽到美女同僚吐槽:dataframe好慢啊!嗯哼,瞬間引起了我這個資料人的注意,過去一看,原來是用的方法本身效率低。

日常工作中,按照行周遊資料是我們一個非常常見的場景!尤其是從sql boy轉到資料分析的我,動不動就想

select * from table1;
           

一下,看看資料的大概情況。這一操作在pandas中的實作主要有一下幾種:

1、iterrows()

原理是将Dataframe疊代為Series,再傳回結果。這一過程中需要進行類型檢查,是以,會花費很長的時間。(不建議使用)

for index, row in df.iterrows():
     #字典方式通路
     print(index, row['c1'], row['c2'])
           

2、itertuples()

原理是将Dataframe疊代為tuple,再進行傳回,由于元組不可變的特性,此過程不需要進行類型檢查。(效率高,推薦使用)

for row in student.itertuples():
    # print(row)
    print(row.Index, row.name, row.account, row.pwd)
    print(row.Index, getattr(row,'name'), getattr(row,'account'), getattr(row,'pwd'))
    
           

3、for + zip 

這種方法是直接手動構造原生tuple,無需關心index資料。(效率高,推薦使用)

for A, B in zip(df['A'], df['B']):
    print(A, B)