Skip to content

Commit 136028b

Browse files
committed
Merge branch 'master' into assign
2 parents 413b022 + 37dfcc1 commit 136028b

File tree

437 files changed

+8838
-15538
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

437 files changed

+8838
-15538
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717

18+
- name: Setting conda path
19+
run: echo "::add-path::${HOME}/miniconda3/bin"
20+
1821
- name: Checkout
1922
uses: actions/checkout@v1
2023

21-
- name: Setting conda path
22-
run: echo "::set-env name=PATH::${HOME}/miniconda3/bin:${PATH}"
23-
2424
- name: Looking for unwanted patterns
2525
run: ci/code_checks.sh patterns
2626
if: true

LICENSES/MSGPACK_LICENSE

Lines changed: 0 additions & 13 deletions
This file was deleted.

LICENSES/MSGPACK_NUMPY_LICENSE

Lines changed: 0 additions & 33 deletions
This file was deleted.

MANIFEST.in

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ global-exclude *.gz
2020
global-exclude *.h5
2121
global-exclude *.html
2222
global-exclude *.json
23-
global-exclude *.msgpack
2423
global-exclude *.pickle
2524
global-exclude *.png
2625
global-exclude *.pyc

asv_bench/benchmarks/array.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import numpy as np
2+
3+
import pandas as pd
4+
5+
6+
class BooleanArray:
7+
def setup(self):
8+
self.values_bool = np.array([True, False, True, False])
9+
self.values_float = np.array([1.0, 0.0, 1.0, 0.0])
10+
self.values_integer = np.array([1, 0, 1, 0])
11+
self.values_integer_like = [1, 0, 1, 0]
12+
13+
def time_from_bool_array(self):
14+
pd.array(self.values_bool, dtype="boolean")
15+
16+
def time_from_integer_array(self):
17+
pd.array(self.values_integer, dtype="boolean")
18+
19+
def time_from_integer_like(self):
20+
pd.array(self.values_integer_like, dtype="boolean")
21+
22+
def time_from_float_array(self):
23+
pd.array(self.values_float, dtype="boolean")

asv_bench/benchmarks/boolean.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import numpy as np
2+
3+
import pandas as pd
4+
5+
6+
class TimeLogicalOps:
7+
def setup(self):
8+
N = 10_000
9+
left, right, lmask, rmask = np.random.randint(0, 2, size=(4, N)).astype("bool")
10+
self.left = pd.arrays.BooleanArray(left, lmask)
11+
self.right = pd.arrays.BooleanArray(right, rmask)
12+
13+
def time_or_scalar(self):
14+
self.left | True
15+
self.left | False
16+
17+
def time_or_array(self):
18+
self.left | self.right
19+
20+
def time_and_scalar(self):
21+
self.left & True
22+
self.left & False
23+
24+
def time_and_array(self):
25+
self.left & self.right
26+
27+
def time_xor_scalar(self):
28+
self.left ^ True
29+
self.left ^ False
30+
31+
def time_xor_array(self):
32+
self.left ^ self.right

asv_bench/benchmarks/frame_ctor.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,16 @@ def time_frame_from_lists(self):
105105
self.df = DataFrame(self.data)
106106

107107

108+
class FromRange:
109+
110+
goal_time = 0.2
111+
112+
def setup(self):
113+
N = 1_000_000
114+
self.data = range(N)
115+
116+
def time_frame_from_range(self):
117+
self.df = DataFrame(self.data)
118+
119+
108120
from .pandas_vb_common import setup # noqa: F401 isort:skip

asv_bench/benchmarks/frame_methods.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -321,10 +321,9 @@ class Dropna:
321321

322322
def setup(self, how, axis):
323323
self.df = DataFrame(np.random.randn(10000, 1000))
324-
with warnings.catch_warnings(record=True):
325-
self.df.ix[50:1000, 20:50] = np.nan
326-
self.df.ix[2000:3000] = np.nan
327-
self.df.ix[:, 60:70] = np.nan
324+
self.df.iloc[50:1000, 20:50] = np.nan
325+
self.df.iloc[2000:3000] = np.nan
326+
self.df.iloc[:, 60:70] = np.nan
328327
self.df_mixed = self.df.copy()
329328
self.df_mixed["foo"] = "bar"
330329

@@ -342,10 +341,9 @@ class Count:
342341

343342
def setup(self, axis):
344343
self.df = DataFrame(np.random.randn(10000, 1000))
345-
with warnings.catch_warnings(record=True):
346-
self.df.ix[50:1000, 20:50] = np.nan
347-
self.df.ix[2000:3000] = np.nan
348-
self.df.ix[:, 60:70] = np.nan
344+
self.df.iloc[50:1000, 20:50] = np.nan
345+
self.df.iloc[2000:3000] = np.nan
346+
self.df.iloc[:, 60:70] = np.nan
349347
self.df_mixed = self.df.copy()
350348
self.df_mixed["foo"] = "bar"
351349

@@ -565,7 +563,7 @@ def setup(self):
565563

566564
def time_frame_get_dtype_counts(self):
567565
with warnings.catch_warnings(record=True):
568-
self.df.get_dtype_counts()
566+
self.df._data.get_dtype_counts()
569567

570568
def time_info(self):
571569
self.df.info()

asv_bench/benchmarks/index_object.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
Float64Index,
88
Index,
99
IntervalIndex,
10+
MultiIndex,
1011
RangeIndex,
1112
Series,
1213
date_range,
@@ -111,6 +112,18 @@ def time_get_loc_dec(self):
111112
self.idx_dec.get_loc(100000)
112113

113114

115+
class IndexEquals:
116+
def setup(self):
117+
idx_large_fast = RangeIndex(100000)
118+
idx_small_slow = date_range(start="1/1/2012", periods=1)
119+
self.mi_large_slow = MultiIndex.from_product([idx_large_fast, idx_small_slow])
120+
121+
self.idx_non_object = RangeIndex(1)
122+
123+
def time_non_object_equals_multiindex(self):
124+
self.idx_non_object.equals(self.mi_large_slow)
125+
126+
114127
class IndexAppend:
115128
def setup(self):
116129

asv_bench/benchmarks/indexing.py

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -67,22 +67,6 @@ def time_iloc_scalar(self, index, index_structure):
6767
def time_iloc_slice(self, index, index_structure):
6868
self.data.iloc[:800000]
6969

70-
def time_ix_array(self, index, index_structure):
71-
with warnings.catch_warnings(record=True):
72-
self.data.ix[self.array]
73-
74-
def time_ix_list_like(self, index, index_structure):
75-
with warnings.catch_warnings(record=True):
76-
self.data.ix[[800000]]
77-
78-
def time_ix_scalar(self, index, index_structure):
79-
with warnings.catch_warnings(record=True):
80-
self.data.ix[800000]
81-
82-
def time_ix_slice(self, index, index_structure):
83-
with warnings.catch_warnings(record=True):
84-
self.data.ix[:800000]
85-
8670
def time_loc_array(self, index, index_structure):
8771
self.data.loc[self.array]
8872

@@ -148,10 +132,6 @@ def setup(self):
148132
self.bool_indexer = self.df[self.col_scalar] > 0
149133
self.bool_obj_indexer = self.bool_indexer.astype(object)
150134

151-
def time_ix(self):
152-
with warnings.catch_warnings(record=True):
153-
self.df.ix[self.idx_scalar, self.col_scalar]
154-
155135
def time_loc(self):
156136
self.df.loc[self.idx_scalar, self.col_scalar]
157137

@@ -228,14 +208,6 @@ def setup(self):
228208
self.idx = IndexSlice[20000:30000, 20:30, 35:45, 30000:40000]
229209
self.mdt = self.mdt.set_index(["A", "B", "C", "D"]).sort_index()
230210

231-
def time_series_ix(self):
232-
with warnings.catch_warnings(record=True):
233-
self.s.ix[999]
234-
235-
def time_frame_ix(self):
236-
with warnings.catch_warnings(record=True):
237-
self.df.ix[999]
238-
239211
def time_index_slice(self):
240212
self.mdt.loc[self.idx, :]
241213

@@ -310,10 +282,6 @@ def setup_cache(self):
310282
def time_lookup_iloc(self, s):
311283
s.iloc
312284

313-
def time_lookup_ix(self, s):
314-
with warnings.catch_warnings(record=True):
315-
s.ix
316-
317285
def time_lookup_loc(self, s):
318286
s.loc
319287

asv_bench/benchmarks/io/msgpack.py

Lines changed: 0 additions & 32 deletions
This file was deleted.

asv_bench/benchmarks/io/sas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ def setup(self, format):
2626
]
2727
self.f = os.path.join(*paths)
2828

29-
def time_read_msgpack(self, format):
29+
def time_read_sas(self, format):
3030
read_sas(self.f, format=format)

asv_bench/benchmarks/multiindex_object.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import numpy as np
44

5-
from pandas import DataFrame, MultiIndex, date_range
5+
from pandas import DataFrame, MultiIndex, RangeIndex, date_range
66
import pandas.util.testing as tm
77

88

@@ -147,4 +147,16 @@ def time_categorical_level(self):
147147
self.df.set_index(["a", "b"])
148148

149149

150+
class Equals:
151+
def setup(self):
152+
idx_large_fast = RangeIndex(100000)
153+
idx_small_slow = date_range(start="1/1/2012", periods=1)
154+
self.mi_large_slow = MultiIndex.from_product([idx_large_fast, idx_small_slow])
155+
156+
self.idx_non_object = RangeIndex(1)
157+
158+
def time_equals_non_object_index(self):
159+
self.mi_large_slow.equals(self.idx_non_object)
160+
161+
150162
from .pandas_vb_common import setup # noqa: F401 isort:skip

0 commit comments

Comments
 (0)