[Assorted-commits] SF.net SVN: assorted:[1902] sandbox/trunk/src/py/pandasvsdataframe.py
Brought to you by:
yangzhang
|
From: <yan...@us...> - 2017-05-12 22:00:14
|
Revision: 1902
http://sourceforge.net/p/assorted/svn/1902
Author: yangzhang
Date: 2017-05-12 22:00:12 +0000 (Fri, 12 May 2017)
Log Message:
-----------
Add pandas vs pydataframe benchmark
Added Paths:
-----------
sandbox/trunk/src/py/pandasvsdataframe.py
Added: sandbox/trunk/src/py/pandasvsdataframe.py
===================================================================
--- sandbox/trunk/src/py/pandasvsdataframe.py (rev 0)
+++ sandbox/trunk/src/py/pandasvsdataframe.py 2017-05-12 22:00:12 UTC (rev 1902)
@@ -0,0 +1,38 @@
+import numpy as np
+import pandas
+import pydataframe as pdf
+import random
+import timeit
+
+r = random.Random()
+r.seed(0)
+
+words=set(open('/usr/share/dict/words').read().split('\n')[:-1])
+xs = r.sample(words,10)
+vals = np.array([r.choice(xs) for i in xrange(100000)])
+
+cat = pandas.Categorical(vals)
+df = pandas.DataFrame(dict(name=cat),index=range(len(cat)))
+df['name2'] = cat.labels
+
+fac = pdf.Factor(vals)
+DF = pdf.DataFrame({'name':fac})
+
+print timeit.repeat(lambda: pandas.Categorical(vals), number=100)
+print timeit.repeat(lambda: pdf.Factor(vals), number=100)
+# [1.7276630401611328, 1.7099509239196777, 1.699409008026123]
+# [5.793086051940918, 5.864365100860596, 5.855109930038452]
+
+print timeit.repeat(lambda: (vals == 'Kane').sum(), number=100)
+print timeit.repeat(lambda: (cat == 'Kane').sum(), number=100)
+print timeit.repeat(lambda: (fac == 'Kane').sum(), number=100)
+# [0.17582988739013672, 0.1752328872680664, 0.1806349754333496]
+# [0.0377810001373291, 0.038002967834472656, 0.03856086730957031]
+# [0.038198232650756836, 0.0375368595123291, 0.03746795654296875]
+
+print timeit.repeat(lambda: (df['name'] == 'Kane').sum(), number=100)
+print timeit.repeat(lambda: (df['name2'] == 1).sum(), number=100)
+print timeit.repeat(lambda: (DF.get_column('name') == 'Kane').sum(), number=100)
+# [1.3420658111572266, 1.3421308994293213, 1.3467140197753906]
+# [0.22314882278442383, 0.22048115730285645, 0.22372817993164062]
+# [0.03833794593811035, 0.03797793388366699, 0.03791189193725586]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|