We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 1037fc0 commit a25ffc3Copy full SHA for a25ffc3
pandas/core/algorithms.py
@@ -56,13 +56,13 @@ def unique(values):
56
return _hashtable_algo(f, values.dtype)
57
58
59
-def count(values, uniques=None):
60
- f = lambda htype, caster: _count_generic(values, htype, caster)
+# def count(values, uniques=None):
+# f = lambda htype, caster: _count_generic(values, htype, caster)
61
62
- if uniques is not None:
63
- raise NotImplementedError
64
- else:
65
- return _hashtable_algo(f, values.dtype)
+# if uniques is not None:
+# raise NotImplementedError
+# else:
+# return _hashtable_algo(f, values.dtype)
66
67
68
def _hashtable_algo(f, dtype):
@@ -82,7 +82,7 @@ def _count_generic(values, table_type, type_caster):
82
83
values = type_caster(values)
84
table = table_type(min(len(values), 1000000))
85
- uniques, labels, counts = table.factorize(values)
+ uniques, labels = table.factorize(values)
86
87
return Series(counts, index=uniques)
88
pandas/core/frame.py
@@ -681,8 +681,12 @@ def keys(self):
681
682
def iteritems(self):
683
"""Iterator over (column, series) pairs"""
684
- for i, k in enumerate(self.columns):
685
- yield k, self.icol(i)
+ if self.columns.is_unique and hasattr(self, '_item_cache'):
+ for k in self.columns:
686
+ yield k, self._get_item_cache(k)
687
+ else:
688
+ for i, k in enumerate(self.columns):
689
+ yield k, self.icol(i)
690
691
def iterrows(self):
692
"""
@@ -1829,15 +1833,8 @@ def icol(self, i):
1829
1833
return self.ix[:, i]
1830
1834
1831
1835
values = self._data.iget(i)
1832
- if hasattr(self,'default_fill_value'):
- s = self._col_klass.from_array(values, index=self.index,
- name=label,
- fill_value= self.default_fill_value)
1836
1837
1838
- name=label)
1839
-
1840
- return s
+ return self._col_klass.from_array(values, index=self.index,
+ name=label)
1841
1842
def _ixs(self, i, axis=0):
1843
if axis == 0:
pandas/sparse/frame.py
@@ -377,6 +377,10 @@ def icol(self, i):
377
378
379
return self[label]
380
+ # values = self._data.iget(i)
381
+ # return self._col_klass.from_array(
382
+ # values, index=self.index, name=label,
383
+ # fill_value= self.default_fill_value)
384
385
@Appender(DataFrame.get_value.__doc__, indents=0)
386
def get_value(self, index, col):
pandas/src/hashtable.pyx
@@ -444,24 +444,6 @@ cdef class Int64HashTable(HashTable):
444
445
return locs
446
447
- def lookup_i4(self, ndarray[int64_t] values):
448
- cdef:
449
- Py_ssize_t i, n = len(values)
450
- int ret = 0
451
- int64_t val
452
- khiter_t k
453
- ndarray[int64_t] locs = np.empty(n, dtype=np.int64)
454
455
- for i in range(n):
456
- val = values[i]
457
- k = kh_get_int64(self.table, val)
458
- if k != self.table.n_buckets:
459
- locs[i] = self.table.vals[k]
460
461
- locs[i] = -1
462
463
- return locs
464
465
def factorize(self, ndarray[object] values):
466
reverse = {}
467
labels = self.get_labels(values, reverse, 0)
vb_suite/frame_methods.py
@@ -71,8 +71,20 @@
71
72
setup = common_setup + """
73
df = DataFrame(randn(10000, 100))
74
+def f():
75
+ if hasattr(df, '_item_cache'):
76
+ df._item_cache.clear()
77
+ for name, col in df.iteritems():
78
+ pass
79
+
80
+def g():
81
# as far back as the earliest test currently in the suite
-frame_iteritems = Benchmark('for name,col in df.iteritems(): pass', setup,
- start_date=datetime(2010, 6, 1))
+frame_iteritems = Benchmark('f()', setup,
+ start_date=datetime(2010, 6, 1))
89
+frame_iteritems_cached = Benchmark('g()', setup,
90
0 commit comments