Skip to content

Commit 773bdd1

Browse files
committed
Merge remote-tracking branch 'origin/master' into fix-flake8-v017
2 parents 5674f9b + d5283ea commit 773bdd1

File tree

320 files changed

+18173
-18404
lines changed

Some content is hidden

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

320 files changed

+18173
-18404
lines changed

.circleci/config.yml

-38
This file was deleted.

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ asv_bench/pandas/
101101
# Documentation generated files #
102102
#################################
103103
doc/source/generated
104+
doc/source/api/generated
104105
doc/source/_static
105106
doc/source/vbench
106107
doc/source/vbench.rst

.travis.yml

+6-15
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ env:
2323

2424
git:
2525
# for cloning
26-
depth: 1500
26+
depth: 2000
2727

2828
matrix:
2929
fast_finish: true
@@ -38,28 +38,19 @@ matrix:
3838

3939
- dist: trusty
4040
env:
41-
- JOB="2.7, locale, slow, old NumPy" ENV_FILE="ci/deps/travis-27-locale.yaml" LOCALE_OVERRIDE="zh_CN.UTF-8" PATTERN="slow"
42-
addons:
43-
apt:
44-
packages:
45-
- language-pack-zh-hans
46-
- dist: trusty
47-
env:
48-
- JOB="2.7" ENV_FILE="ci/deps/travis-27.yaml" PATTERN="not slow"
41+
- JOB="2.7" ENV_FILE="ci/deps/travis-27.yaml" PATTERN="not slow and db"
4942
addons:
5043
apt:
5144
packages:
5245
- python-gtk2
46+
5347
- dist: trusty
5448
env:
55-
- JOB="3.6, coverage" ENV_FILE="ci/deps/travis-36.yaml" PATTERN="not slow and not network" PANDAS_TESTING_MODE="deprecate" COVERAGE=true
49+
- JOB="3.6, locale" ENV_FILE="ci/deps/travis-36-locale.yaml" PATTERN="not slow and not network and db" LOCALE_OVERRIDE="zh_CN.UTF-8"
50+
5651
- dist: trusty
5752
env:
58-
- JOB="3.7, NumPy dev" ENV_FILE="ci/deps/travis-37-numpydev.yaml" PATTERN="not slow and not network" TEST_ARGS="-W error" PANDAS_TESTING_MODE="deprecate"
59-
addons:
60-
apt:
61-
packages:
62-
- xsel
53+
- JOB="3.6, coverage" ENV_FILE="ci/deps/travis-36.yaml" PATTERN="not slow and not network and db" PANDAS_TESTING_MODE="deprecate" COVERAGE=true
6354

6455
# In allow_failures
6556
- dist: trusty

README.md

-8
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,6 @@
4545
</a>
4646
</td>
4747
</tr>
48-
<tr>
49-
<td></td>
50-
<td>
51-
<a href="https://circleci.com/gh/pandas-dev/pandas">
52-
<img src="https://circleci.com/gh/circleci/mongofinil/tree/master.svg?style=shield&circle-token=223d8cafa7b02902c3e150242520af8944e34671" alt="circleci build status" />
53-
</a>
54-
</td>
55-
</tr>
5648
<tr>
5749
<td></td>
5850
<td>

asv_bench/benchmarks/frame_methods.py

+62-1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ def setup(self):
103103
self.df2 = DataFrame(np.random.randn(N * 50, 10))
104104
self.df3 = DataFrame(np.random.randn(N, 5 * N),
105105
columns=['C' + str(c) for c in range(N * 5)])
106+
self.df4 = DataFrame(np.random.randn(N * 1000, 10))
106107

107108
def time_iteritems(self):
108109
# (monitor no-copying behaviour)
@@ -119,10 +120,70 @@ def time_iteritems_indexing(self):
119120
for col in self.df3:
120121
self.df3[col]
121122

123+
def time_itertuples_start(self):
124+
self.df4.itertuples()
125+
126+
def time_itertuples_read_first(self):
127+
next(self.df4.itertuples())
128+
122129
def time_itertuples(self):
123-
for row in self.df2.itertuples():
130+
for row in self.df4.itertuples():
131+
pass
132+
133+
def time_itertuples_to_list(self):
134+
list(self.df4.itertuples())
135+
136+
def mem_itertuples_start(self):
137+
return self.df4.itertuples()
138+
139+
def peakmem_itertuples_start(self):
140+
self.df4.itertuples()
141+
142+
def mem_itertuples_read_first(self):
143+
return next(self.df4.itertuples())
144+
145+
def peakmem_itertuples(self):
146+
for row in self.df4.itertuples():
147+
pass
148+
149+
def mem_itertuples_to_list(self):
150+
return list(self.df4.itertuples())
151+
152+
def peakmem_itertuples_to_list(self):
153+
list(self.df4.itertuples())
154+
155+
def time_itertuples_raw_start(self):
156+
self.df4.itertuples(index=False, name=None)
157+
158+
def time_itertuples_raw_read_first(self):
159+
next(self.df4.itertuples(index=False, name=None))
160+
161+
def time_itertuples_raw_tuples(self):
162+
for row in self.df4.itertuples(index=False, name=None):
124163
pass
125164

165+
def time_itertuples_raw_tuples_to_list(self):
166+
list(self.df4.itertuples(index=False, name=None))
167+
168+
def mem_itertuples_raw_start(self):
169+
return self.df4.itertuples(index=False, name=None)
170+
171+
def peakmem_itertuples_raw_start(self):
172+
self.df4.itertuples(index=False, name=None)
173+
174+
def peakmem_itertuples_raw_read_first(self):
175+
next(self.df4.itertuples(index=False, name=None))
176+
177+
def peakmem_itertuples_raw(self):
178+
for row in self.df4.itertuples(index=False, name=None):
179+
pass
180+
181+
def mem_itertuples_raw_to_list(self):
182+
return list(self.df4.itertuples(index=False, name=None))
183+
184+
def peakmem_itertuples_raw_to_list(self):
185+
list(self.df4.itertuples(index=False, name=None))
186+
126187
def time_iterrows(self):
127188
for row in self.df.iterrows():
128189
pass

asv_bench/benchmarks/join_merge.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def setup(self, axis):
5050
self.empty_right = [df, DataFrame()]
5151

5252
def time_concat_series(self, axis):
53-
concat(self.series, axis=axis)
53+
concat(self.series, axis=axis, sort=False)
5454

5555
def time_concat_small_frames(self, axis):
5656
concat(self.small_frames, axis=axis)

asv_bench/benchmarks/panel_ctor.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import warnings
22
from datetime import datetime, timedelta
33

4-
from pandas import DataFrame, Panel, DatetimeIndex, date_range
4+
from pandas import DataFrame, Panel, date_range
55

66

77
class DifferentIndexes(object):
@@ -23,9 +23,9 @@ def time_from_dict(self):
2323
class SameIndexes(object):
2424

2525
def setup(self):
26-
idx = DatetimeIndex(start=datetime(1990, 1, 1),
27-
end=datetime(2012, 1, 1),
28-
freq='D')
26+
idx = date_range(start=datetime(1990, 1, 1),
27+
end=datetime(2012, 1, 1),
28+
freq='D')
2929
df = DataFrame({'a': 0, 'b': 1, 'c': 2}, index=idx)
3030
self.data_frames = dict(enumerate([df] * 100))
3131

@@ -40,10 +40,10 @@ def setup(self):
4040
start = datetime(1990, 1, 1)
4141
end = datetime(2012, 1, 1)
4242
df1 = DataFrame({'a': 0, 'b': 1, 'c': 2},
43-
index=DatetimeIndex(start=start, end=end, freq='D'))
43+
index=date_range(start=start, end=end, freq='D'))
4444
end += timedelta(days=1)
4545
df2 = DataFrame({'a': 0, 'b': 1, 'c': 2},
46-
index=DatetimeIndex(start=start, end=end, freq='D'))
46+
index=date_range(start=start, end=end, freq='D'))
4747
dfs = [df1] * 50 + [df2] * 50
4848
self.data_frames = dict(enumerate(dfs))
4949

asv_bench/benchmarks/period.py

+34-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
from pandas import (DataFrame, Series, Period, PeriodIndex, date_range,
2-
period_range)
1+
from pandas import (
2+
DataFrame, Period, PeriodIndex, Series, date_range, period_range)
3+
from pandas.tseries.frequencies import to_offset
34

45

56
class PeriodProperties(object):
@@ -35,25 +36,48 @@ def time_asfreq(self, freq):
3536
self.per.asfreq('A')
3637

3738

39+
class PeriodConstructor(object):
40+
params = [['D'], [True, False]]
41+
param_names = ['freq', 'is_offset']
42+
43+
def setup(self, freq, is_offset):
44+
if is_offset:
45+
self.freq = to_offset(freq)
46+
else:
47+
self.freq = freq
48+
49+
def time_period_constructor(self, freq, is_offset):
50+
Period('2012-06-01', freq=freq)
51+
52+
3853
class PeriodIndexConstructor(object):
3954

40-
params = ['D']
41-
param_names = ['freq']
55+
params = [['D'], [True, False]]
56+
param_names = ['freq', 'is_offset']
4257

43-
def setup(self, freq):
58+
def setup(self, freq, is_offset):
4459
self.rng = date_range('1985', periods=1000)
4560
self.rng2 = date_range('1985', periods=1000).to_pydatetime()
4661
self.ints = list(range(2000, 3000))
47-
48-
def time_from_date_range(self, freq):
62+
self.daily_ints = date_range('1/1/2000', periods=1000,
63+
freq=freq).strftime('%Y%m%d').map(int)
64+
if is_offset:
65+
self.freq = to_offset(freq)
66+
else:
67+
self.freq = freq
68+
69+
def time_from_date_range(self, freq, is_offset):
4970
PeriodIndex(self.rng, freq=freq)
5071

51-
def time_from_pydatetime(self, freq):
72+
def time_from_pydatetime(self, freq, is_offset):
5273
PeriodIndex(self.rng2, freq=freq)
5374

54-
def time_from_ints(self, freq):
75+
def time_from_ints(self, freq, is_offset):
5576
PeriodIndex(self.ints, freq=freq)
5677

78+
def time_from_ints_daily(self, freq, is_offset):
79+
PeriodIndex(self.daily_ints, freq=freq)
80+
5781

5882
class DataFramePeriodColumn(object):
5983

@@ -94,7 +118,7 @@ def time_value_counts(self, typ):
94118
class Indexing(object):
95119

96120
def setup(self):
97-
self.index = PeriodIndex(start='1985', periods=1000, freq='D')
121+
self.index = period_range(start='1985', periods=1000, freq='D')
98122
self.series = Series(range(1000), index=self.index)
99123
self.period = self.index[500]
100124

asv_bench/benchmarks/reindex.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import numpy as np
22
import pandas.util.testing as tm
3-
from pandas import (DataFrame, Series, DatetimeIndex, MultiIndex, Index,
3+
from pandas import (DataFrame, Series, MultiIndex, Index,
44
date_range)
55
from .pandas_vb_common import lib
66

77

88
class Reindex(object):
99

1010
def setup(self):
11-
rng = DatetimeIndex(start='1/1/1970', periods=10000, freq='1min')
11+
rng = date_range(start='1/1/1970', periods=10000, freq='1min')
1212
self.df = DataFrame(np.random.rand(10000, 10), index=rng,
1313
columns=range(10))
1414
self.df['foo'] = 'bar'

asv_bench/benchmarks/stat_ops.py

+7
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ def setup(self, method, use_bottleneck):
106106
from pandas.core import nanops
107107
nanops._USE_BOTTLENECK = use_bottleneck
108108
self.df = pd.DataFrame(np.random.randn(1000, 30))
109+
self.df2 = pd.DataFrame(np.random.randn(1000, 30))
109110
self.s = pd.Series(np.random.randn(1000))
110111
self.s2 = pd.Series(np.random.randn(1000))
111112

@@ -115,6 +116,12 @@ def time_corr(self, method, use_bottleneck):
115116
def time_corr_series(self, method, use_bottleneck):
116117
self.s.corr(self.s2, method=method)
117118

119+
def time_corrwith_cols(self, method, use_bottleneck):
120+
self.df.corrwith(self.df2, method=method)
121+
122+
def time_corrwith_rows(self, method, use_bottleneck):
123+
self.df.corrwith(self.df2, axis=1, method=method)
124+
118125

119126
class Covariance(object):
120127

asv_bench/benchmarks/timedelta.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import datetime
22

33
import numpy as np
4-
from pandas import Series, timedelta_range, to_timedelta, Timestamp, \
5-
Timedelta, TimedeltaIndex, DataFrame
4+
5+
from pandas import (
6+
DataFrame, Series, Timedelta, Timestamp, timedelta_range, to_timedelta)
67

78

89
class TimedeltaConstructor(object):
@@ -122,8 +123,8 @@ def time_timedelta_nanoseconds(self, series):
122123
class TimedeltaIndexing(object):
123124

124125
def setup(self):
125-
self.index = TimedeltaIndex(start='1985', periods=1000, freq='D')
126-
self.index2 = TimedeltaIndex(start='1986', periods=1000, freq='D')
126+
self.index = timedelta_range(start='1985', periods=1000, freq='D')
127+
self.index2 = timedelta_range(start='1986', periods=1000, freq='D')
127128
self.series = Series(range(1000), index=self.index)
128129
self.timedelta = self.index[500]
129130

asv_bench/benchmarks/timestamp.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import datetime
22

3-
from pandas import Timestamp
4-
import pytz
53
import dateutil
4+
import pytz
5+
6+
from pandas import Timestamp
67

78

89
class TimestampConstruction(object):
@@ -46,7 +47,7 @@ def time_dayofweek(self, tz, freq):
4647
self.ts.dayofweek
4748

4849
def time_weekday_name(self, tz, freq):
49-
self.ts.weekday_name
50+
self.ts.day_name
5051

5152
def time_dayofyear(self, tz, freq):
5253
self.ts.dayofyear

azure-pipelines.yml

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
ci/incremental/install_miniconda.sh
4444
ci/incremental/setup_conda_environment.sh
4545
displayName: 'Set up environment'
46+
condition: true
4647
4748
# Do not require pandas
4849
- script: |

0 commit comments

Comments
 (0)