2015-02-26 27 views
7

Panda'lar yerleşik yöntem mi yoksa pickle.dump mu?Bir panda DataFrame'ı seçmenin en hızlı yolu nedir?

standart turşu yöntemi şöyle görünür:

pickle.dump(my_dataframe, open('test_pickle.p', 'wb')) 

Pandalar yerleşik bir yöntem aşağıdaki gibidir:

my_dataframe.to_pickle('test_pickle.p') 
+0

neden sadece onları kıyaslamıyor? – tolanj

+1

@tolanj Tam olarak benchmark ile ne demek istiyorsun? Aşağıdaki cevaba zamanlamaları dahil ediyorum. – tegan

+0

"panda.DataFrame" serileştirmesi için iyi bir ölçüme ihtiyaç duyanlar için: [FastSerialization] (http://matthewrocklin.com/blog/work/2015/03/16/Fast-Serialization). –

cevap

9

teşekkürler ben pandalar yerleşik bir ettiğini to_pickle keşfetti @qwwqwwq için veri çerçeveleri için yöntem. Ben hızlı bir zaman test yaptım:

In [1]: %timeit pickle.dump(df, open('test_pickle.p', 'wb')) 
10 loops, best of 3: 91.8 ms per loop 

In [2]: %timeit df.to_pickle('testpickle.p') 
10 loops, best of 3: 88 ms per loop 

Yani yerleşik sadece dar daha iyi gibi görünüyor (o kullanmak muhtemelen kod üstlenmeden değmez demektir çünkü bana, bu yararlıdır yerleşik) - umarım bu birisine yardım eder!

+0

Neden işlem süresi konusunda endişelisiniz? İşlevselliğin daha önemli olduğunu düşünürdüm. 'To_pickle' herhangi bir ekstra işleve sahip mi? Turşu almak zorunda kalmamanın rahatlığı mı? – endolith

+6

Bu, çok geç bir şekilde, ancak çok büyük veri kareleri için, yazma süresi ('pickle.dump' veya' df.to_pickle') yöntemden bağımsız olarak aynıdır, ancak okuma zamanı _much_ daha hızlıdır. df.to_pickle ile oluşturulan dosyalar için. 53330 satır x 21 sütun boyutundaki bir veri çerçevesindeki 'timeit' ile' df.to_pickle' ile yazılmış bir dosyayı kaldırmak için 'pickle.dump' ile yazılan bir dosyayı ve yalnızca 3 msnı kaldırmak için 115 ms'dir. Büyük hızın nereden geldiğinden emin değil, ama oldukça dikkat çekici. – Tasha

+0

Tasha için teşekkürler, çok yararlı. Hız farkının neden olduğunu merak ediyorum, ikisinin de aynı dosya ile sonuçlanması gerektiğini düşünürdüm. – verybadatthis

İlgili konular