Skip to content

Commit 6612151

Browse files
authored
Merge pull request #208 from pandas-dev/master
Sync Fork from Upstream Repo
2 parents 9bd1949 + fa9d66c commit 6612151

Some content is hidden

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

88 files changed

+1107
-736
lines changed

.github/workflows/sdist.yml

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: sdist
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
- 1.2.x
11+
- 1.3.x
12+
paths-ignore:
13+
- "doc/**"
14+
15+
jobs:
16+
build:
17+
runs-on: ubuntu-latest
18+
timeout-minutes: 60
19+
defaults:
20+
run:
21+
shell: bash -l {0}
22+
23+
strategy:
24+
fail-fast: false
25+
matrix:
26+
python-version: ["3.7", "3.8", "3.9"]
27+
28+
steps:
29+
- uses: actions/checkout@v2
30+
with:
31+
fetch-depth: 0
32+
33+
- name: Set up Python
34+
uses: actions/setup-python@v2
35+
with:
36+
python-version: ${{ matrix.python-version }}
37+
38+
- name: Install dependencies
39+
run: |
40+
python -m pip install --upgrade pip setuptools wheel
41+
42+
# GH 39416
43+
pip install numpy
44+
45+
- name: Build pandas sdist
46+
run: |
47+
pip list
48+
python setup.py sdist --formats=gztar
49+
50+
- uses: conda-incubator/setup-miniconda@v2
51+
with:
52+
activate-environment: pandas-sdist
53+
python-version: ${{ matrix.python-version }}
54+
55+
- name: Install pandas from sdist
56+
run: |
57+
conda list
58+
python -m pip install dist/*.gz
59+
60+
- name: Import pandas
61+
run: |
62+
cd ..
63+
conda list
64+
python -c "import pandas; pandas.show_versions();"

.pre-commit-config.yaml

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ repos:
99
- id: absolufy-imports
1010
files: ^pandas/
1111
- repo: https://github.com/python/black
12-
rev: 21.5b2
12+
rev: 21.6b0
1313
hooks:
1414
- id: black
1515
- repo: https://github.com/codespell-project/codespell
16-
rev: v2.0.0
16+
rev: v2.1.0
1717
hooks:
1818
- id: codespell
1919
types_or: [python, rst, markdown]
@@ -53,16 +53,16 @@ repos:
5353
types: [text]
5454
args: [--append-config=flake8/cython-template.cfg]
5555
- repo: https://github.com/PyCQA/isort
56-
rev: 5.8.0
56+
rev: 5.9.0
5757
hooks:
5858
- id: isort
5959
- repo: https://github.com/asottile/pyupgrade
60-
rev: v2.18.3
60+
rev: v2.19.4
6161
hooks:
6262
- id: pyupgrade
6363
args: [--py37-plus]
6464
- repo: https://github.com/pre-commit/pygrep-hooks
65-
rev: v1.8.0
65+
rev: v1.9.0
6666
hooks:
6767
- id: rst-backticks
6868
- id: rst-directive-colons

asv_bench/benchmarks/algos/isin.py

+10
Original file line numberDiff line numberDiff line change
@@ -325,3 +325,13 @@ def setup(self, dtype, series_type):
325325

326326
def time_isin(self, dtypes, series_type):
327327
self.series.isin(self.values)
328+
329+
330+
class IsInWithLongTupples:
331+
def setup(self):
332+
t = tuple(range(1000))
333+
self.series = Series([t] * 1000)
334+
self.values = [t]
335+
336+
def time_isin(self):
337+
self.series.isin(self.values)

ci/code_checks.sh

-3
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,7 @@ function invgrep {
3838
}
3939

4040
if [[ "$GITHUB_ACTIONS" == "true" ]]; then
41-
FLAKE8_FORMAT="##[error]%(path)s:%(row)s:%(col)s:%(code)s:%(text)s"
4241
INVGREP_PREPEND="##[error]"
43-
else
44-
FLAKE8_FORMAT="default"
4542
fi
4643

4744
### LINTING ###

ci/deps/actions-37-slow.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ dependencies:
1414

1515
# pandas dependencies
1616
- beautifulsoup4
17-
- fsspec>=0.7.4
17+
- fsspec>=0.7.4, <2021.6.0
1818
- html5lib
1919
- lxml
2020
- matplotlib

ci/deps/actions-38-slow.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313

1414
# pandas dependencies
1515
- beautifulsoup4
16-
- fsspec>=0.7.4
16+
- fsspec>=0.7.4, <2021.6.0
1717
- html5lib
1818
- lxml
1919
- matplotlib

ci/deps/azure-windows-38.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ dependencies:
1717
- bottleneck
1818
- fastparquet>=0.4.0
1919
- flask
20-
- fsspec>=0.8.0
20+
- fsspec>=0.8.0, <2021.6.0
2121
- matplotlib=3.1.3
2222
- moto>=1.3.14
2323
- numba

doc/source/user_guide/indexing.rst

+4-5
Original file line numberDiff line numberDiff line change
@@ -1523,18 +1523,17 @@ Looking up values by index/column labels
15231523
----------------------------------------
15241524

15251525
Sometimes you want to extract a set of values given a sequence of row labels
1526-
and column labels, this can be achieved by ``DataFrame.melt`` combined by filtering the corresponding
1527-
rows with ``DataFrame.loc``. For instance:
1526+
and column labels, this can be achieved by ``pandas.factorize`` and NumPy indexing.
1527+
For instance:
15281528

15291529
.. ipython:: python
15301530
15311531
df = pd.DataFrame({'col': ["A", "A", "B", "B"],
15321532
'A': [80, 23, np.nan, 22],
15331533
'B': [80, 55, 76, 67]})
15341534
df
1535-
melt = df.melt('col')
1536-
melt = melt.loc[melt['col'] == melt['variable'], 'value']
1537-
melt.reset_index(drop=True)
1535+
idx, cols = pd.factorize(df['col'])
1536+
df.reindex(cols, axis=1).to_numpy()[np.arange(len(df)), idx]
15381537
15391538
Formerly this could be achieved with the dedicated ``DataFrame.lookup`` method
15401539
which was deprecated in version 1.2.0.

doc/source/whatsnew/v1.2.5.rst

+7-27
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.. _whatsnew_125:
22

3-
What's new in 1.2.5 (May ??, 2021)
4-
----------------------------------
3+
What's new in 1.2.5 (June 22, 2021)
4+
-----------------------------------
55

66
These are the changes in pandas 1.2.5. See :ref:`release` for a full changelog
77
including other versions of pandas.
@@ -14,32 +14,12 @@ including other versions of pandas.
1414

1515
Fixed regressions
1616
~~~~~~~~~~~~~~~~~
17-
- Regression in :func:`concat` between two :class:`DataFrames` where one has an :class:`Index` that is all-None and the other is :class:`DatetimeIndex` incorrectly raising (:issue:`40841`)
17+
- Fixed regression in :func:`concat` between two :class:`DataFrame` where one has an :class:`Index` that is all-None and the other is :class:`DatetimeIndex` incorrectly raising (:issue:`40841`)
1818
- Fixed regression in :meth:`DataFrame.sum` and :meth:`DataFrame.prod` when ``min_count`` and ``numeric_only`` are both given (:issue:`41074`)
19-
- Regression in :func:`read_csv` when using ``memory_map=True`` with an non-UTF8 encoding (:issue:`40986`)
20-
- Regression in :meth:`DataFrame.replace` and :meth:`Series.replace` when the values to replace is a NumPy float array (:issue:`40371`)
21-
- Regression in :func:`ExcelFile` when a corrupt file is opened but not closed (:issue:`41778`)
22-
23-
.. ---------------------------------------------------------------------------
24-
25-
26-
.. _whatsnew_125.bug_fixes:
27-
28-
Bug fixes
29-
~~~~~~~~~
30-
31-
-
32-
-
33-
34-
.. ---------------------------------------------------------------------------
35-
36-
.. _whatsnew_125.other:
37-
38-
Other
39-
~~~~~
40-
41-
-
42-
-
19+
- Fixed regression in :func:`read_csv` when using ``memory_map=True`` with an non-UTF8 encoding (:issue:`40986`)
20+
- Fixed regression in :meth:`DataFrame.replace` and :meth:`Series.replace` when the values to replace is a NumPy float array (:issue:`40371`)
21+
- Fixed regression in :func:`ExcelFile` when a corrupt file is opened but not closed (:issue:`41778`)
22+
- Fixed regression in :meth:`DataFrame.astype` with ``dtype=str`` failing to convert ``NaN`` in categorical columns (:issue:`41797`)
4323

4424
.. ---------------------------------------------------------------------------
4525

doc/source/whatsnew/v1.3.0.rst

+15-12
Original file line numberDiff line numberDiff line change
@@ -269,12 +269,14 @@ Other enhancements
269269
- :meth:`read_csv` and :meth:`read_json` expose the argument ``encoding_errors`` to control how encoding errors are handled (:issue:`39450`)
270270
- :meth:`.GroupBy.any` and :meth:`.GroupBy.all` use Kleene logic with nullable data types (:issue:`37506`)
271271
- :meth:`.GroupBy.any` and :meth:`.GroupBy.all` return a ``BooleanDtype`` for columns with nullable data types (:issue:`33449`)
272+
- :meth:`.GroupBy.any` and :meth:`.GroupBy.all` raising with ``object`` data containing ``pd.NA`` even when ``skipna=True`` (:issue:`37501`)
272273
- :meth:`.GroupBy.rank` now supports object-dtype data (:issue:`38278`)
273274
- Constructing a :class:`DataFrame` or :class:`Series` with the ``data`` argument being a Python iterable that is *not* a NumPy ``ndarray`` consisting of NumPy scalars will now result in a dtype with a precision the maximum of the NumPy scalars; this was already the case when ``data`` is a NumPy ``ndarray`` (:issue:`40908`)
274275
- Add keyword ``sort`` to :func:`pivot_table` to allow non-sorting of the result (:issue:`39143`)
275276
- Add keyword ``dropna`` to :meth:`DataFrame.value_counts` to allow counting rows that include ``NA`` values (:issue:`41325`)
276277
- :meth:`Series.replace` will now cast results to ``PeriodDtype`` where possible instead of ``object`` dtype (:issue:`41526`)
277278
- Improved error message in ``corr`` and ``cov`` methods on :class:`.Rolling`, :class:`.Expanding`, and :class:`.ExponentialMovingWindow` when ``other`` is not a :class:`DataFrame` or :class:`Series` (:issue:`41741`)
279+
- :meth:`DataFrame.explode` now supports exploding multiple columns. Its ``column`` argument now also accepts a list of str or tuples for exploding on multiple columns at the same time (:issue:`39240`)
278280

279281
.. ---------------------------------------------------------------------------
280282
@@ -914,13 +916,15 @@ Datetimelike
914916
- Bug in constructing a :class:`DataFrame` or :class:`Series` with mismatched ``datetime64`` data and ``timedelta64`` dtype, or vice-versa, failing to raise a ``TypeError`` (:issue:`38575`, :issue:`38764`, :issue:`38792`)
915917
- Bug in constructing a :class:`Series` or :class:`DataFrame` with a ``datetime`` object out of bounds for ``datetime64[ns]`` dtype or a ``timedelta`` object out of bounds for ``timedelta64[ns]`` dtype (:issue:`38792`, :issue:`38965`)
916918
- Bug in :meth:`DatetimeIndex.intersection`, :meth:`DatetimeIndex.symmetric_difference`, :meth:`PeriodIndex.intersection`, :meth:`PeriodIndex.symmetric_difference` always returning object-dtype when operating with :class:`CategoricalIndex` (:issue:`38741`)
919+
- Bug in :meth:`DatetimeIndex.intersection` giving incorrect results with non-Tick frequencies with ``n != 1`` (:issue:`42104`)
917920
- Bug in :meth:`Series.where` incorrectly casting ``datetime64`` values to ``int64`` (:issue:`37682`)
918921
- Bug in :class:`Categorical` incorrectly typecasting ``datetime`` object to ``Timestamp`` (:issue:`38878`)
919922
- Bug in comparisons between :class:`Timestamp` object and ``datetime64`` objects just outside the implementation bounds for nanosecond ``datetime64`` (:issue:`39221`)
920923
- Bug in :meth:`Timestamp.round`, :meth:`Timestamp.floor`, :meth:`Timestamp.ceil` for values near the implementation bounds of :class:`Timestamp` (:issue:`39244`)
921924
- Bug in :meth:`Timedelta.round`, :meth:`Timedelta.floor`, :meth:`Timedelta.ceil` for values near the implementation bounds of :class:`Timedelta` (:issue:`38964`)
922925
- Bug in :func:`date_range` incorrectly creating :class:`DatetimeIndex` containing ``NaT`` instead of raising ``OutOfBoundsDatetime`` in corner cases (:issue:`24124`)
923926
- Bug in :func:`infer_freq` incorrectly fails to infer 'H' frequency of :class:`DatetimeIndex` if the latter has a timezone and crosses DST boundaries (:issue:`39556`)
927+
- Bug in :class:`Series` backed by :class:`DatetimeArray` or :class:`TimedeltaArray` sometimes failing to set the array's ``freq`` to ``None`` (:issue:`41425`)
924928

925929
Timedelta
926930
^^^^^^^^^
@@ -951,7 +955,8 @@ Numeric
951955
- Bug in :class:`Series` and :class:`DataFrame` reductions with methods ``any`` and ``all`` not returning Boolean results for object data (:issue:`12863`, :issue:`35450`, :issue:`27709`)
952956
- Bug in :meth:`Series.clip` would fail if the Series contains NA values and has nullable int or float as a data type (:issue:`40851`)
953957
- Bug in :meth:`UInt64Index.where` and :meth:`UInt64Index.putmask` with an ``np.int64`` dtype ``other`` incorrectly raising ``TypeError`` (:issue:`41974`)
954-
958+
- Bug in :meth:`DataFrame.agg()` not sorting the aggregated axis in the order of the provided aggragation functions when one or more aggregation function fails to produce results (:issue:`33634`)
959+
- Bug in :meth:`DataFrame.clip` not interpreting missing values as no threshold (:issue:`40420`)
955960

956961
Conversion
957962
^^^^^^^^^^
@@ -967,6 +972,12 @@ Conversion
967972
- Bug in :class:`DataFrame` and :class:`Series` construction with ``datetime64[ns]`` data and ``dtype=object`` resulting in ``datetime`` objects instead of :class:`Timestamp` objects (:issue:`41599`)
968973
- Bug in :class:`DataFrame` and :class:`Series` construction with ``timedelta64[ns]`` data and ``dtype=object`` resulting in ``np.timedelta64`` objects instead of :class:`Timedelta` objects (:issue:`41599`)
969974
- Bug in :class:`DataFrame` construction when given a two-dimensional object-dtype ``np.ndarray`` of :class:`Period` or :class:`Interval` objects failing to cast to :class:`PeriodDtype` or :class:`IntervalDtype`, respectively (:issue:`41812`)
975+
- Bug in constructing a :class:`Series` from a list and a :class:`PandasDtype` (:issue:`39357`)
976+
- Bug in creating a :class:`Series` from a ``range`` object that does not fit in the bounds of ``int64`` dtype (:issue:`30173`)
977+
- Bug in creating a :class:`Series` from a ``dict`` with all-tuple keys and an :class:`Index` that requires reindexing (:issue:`41707`)
978+
- Bug in :func:`.infer_dtype` not recognizing Series, Index, or array with a Period dtype (:issue:`23553`)
979+
- Bug in :func:`.infer_dtype` raising an error for general :class:`.ExtensionArray` objects. It will now return ``"unknown-array"`` instead of raising (:issue:`37367`)
980+
- Bug in :meth:`DataFrame.convert_dtypes` incorrectly raised a ``ValueError`` when called on an empty DataFrame (:issue:`40393`)
970981

971982
Strings
972983
^^^^^^^
@@ -1028,6 +1039,8 @@ Indexing
10281039
- Bug ``.loc.__getitem__`` with a :class:`UInt64Index` and negative-integer keys raising ``OverflowError`` instead of ``KeyError`` in some cases, wrapping around to positive integers in others (:issue:`41777`)
10291040
- Bug in :meth:`Index.get_indexer` failing to raise ``ValueError`` in some cases with invalid ``method``, ``limit``, or ``tolerance`` arguments (:issue:`41918`)
10301041
- Bug when slicing a :class:`Series` or :class:`DataFrame` with a :class:`TimedeltaIndex` when passing an invalid string raising ``ValueError`` instead of a ``TypeError`` (:issue:`41821`)
1042+
- Bug in :class:`Index` constructor sometimes silently ignoring a specified ``dtype`` (:issue:`38879`)
1043+
- :meth:`Index.where` behavior now mirrors :meth:`Index.putmask` behavior, i.e. ``index.where(mask, other)`` matches ``index.putmask(~mask, other)`` (:issue:`39412`)
10311044

10321045
Missing
10331046
^^^^^^^
@@ -1197,24 +1210,14 @@ Styler
11971210

11981211
Other
11991212
^^^^^
1200-
- Bug in :class:`Index` constructor sometimes silently ignoring a specified ``dtype`` (:issue:`38879`)
1201-
- Bug in :func:`.infer_dtype` not recognizing Series, Index, or array with a Period dtype (:issue:`23553`)
1202-
- Bug in :func:`.infer_dtype` raising an error for general :class:`.ExtensionArray` objects. It will now return ``"unknown-array"`` instead of raising (:issue:`37367`)
1203-
- Bug in constructing a :class:`Series` from a list and a :class:`PandasDtype` (:issue:`39357`)
12041213
- ``inspect.getmembers(Series)`` no longer raises an ``AbstractMethodError`` (:issue:`38782`)
12051214
- Bug in :meth:`Series.where` with numeric dtype and ``other=None`` not casting to ``nan`` (:issue:`39761`)
1206-
- :meth:`Index.where` behavior now mirrors :meth:`Index.putmask` behavior, i.e. ``index.where(mask, other)`` matches ``index.putmask(~mask, other)`` (:issue:`39412`)
12071215
- Bug in :func:`.assert_series_equal`, :func:`.assert_frame_equal`, :func:`.assert_index_equal` and :func:`.assert_extension_array_equal` incorrectly raising when an attribute has an unrecognized NA type (:issue:`39461`)
12081216
- Bug in :func:`.assert_index_equal` with ``exact=True`` not raising when comparing :class:`CategoricalIndex` instances with ``Int64Index`` and ``RangeIndex`` categories (:issue:`41263`)
12091217
- Bug in :meth:`DataFrame.equals`, :meth:`Series.equals`, and :meth:`Index.equals` with object-dtype containing ``np.datetime64("NaT")`` or ``np.timedelta64("NaT")`` (:issue:`39650`)
12101218
- Bug in :func:`show_versions` where console JSON output was not proper JSON (:issue:`39701`)
12111219
- pandas can now compile on z/OS when using `xlc <https://www.ibm.com/products/xl-cpp-compiler-zos>`_ (:issue:`35826`)
1212-
- Bug in :meth:`DataFrame.convert_dtypes` incorrectly raised a ``ValueError`` when called on an empty DataFrame (:issue:`40393`)
1213-
- Bug in :meth:`DataFrame.agg()` not sorting the aggregated axis in the order of the provided aggragation functions when one or more aggregation function fails to produce results (:issue:`33634`)
1214-
- Bug in :meth:`DataFrame.clip` not interpreting missing values as no threshold (:issue:`40420`)
1215-
- Bug in :class:`Series` backed by :class:`DatetimeArray` or :class:`TimedeltaArray` sometimes failing to set the array's ``freq`` to ``None`` (:issue:`41425`)
1216-
- Bug in creating a :class:`Series` from a ``range`` object that does not fit in the bounds of ``int64`` dtype (:issue:`30173`)
1217-
- Bug in creating a :class:`Series` from a ``dict`` with all-tuple keys and an :class:`Index` that requires reindexing (:issue:`41707`)
1220+
- Bug in :func:`pandas.util.hash_pandas_object` not recognizing ``hash_key``, ``encoding`` and ``categorize`` when the input object type is a :class:`DataFrame` (:issue:`41404`)
12181221

12191222
.. ---------------------------------------------------------------------------
12201223

doc/source/whatsnew/v1.4.0.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ Other API changes
9696

9797
Deprecations
9898
~~~~~~~~~~~~
99-
-
99+
- Deprecated :meth:`Index.is_type_compatible` (:issue:`42113`)
100100
-
101101

102102
.. ---------------------------------------------------------------------------

environment.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ dependencies:
2424
- flake8-bugbear=21.3.2 # used by flake8, find likely bugs
2525
- flake8-comprehensions=3.1.0 # used by flake8, linting of unnecessary comprehensions
2626
- isort>=5.2.1 # check that imports are in the right order
27-
- mypy=0.812
27+
- mypy=0.910
2828
- pre-commit>=2.9.2
2929
- pycodestyle # used by flake8
3030
- pyupgrade
@@ -118,3 +118,7 @@ dependencies:
118118
- git+https://github.com/pydata/pydata-sphinx-theme.git@master
119119
- numpydoc < 1.2 # 2021-02-09 1.2dev breaking CI
120120
- pandas-dev-flaker==0.2.0
121+
- types-python-dateutil
122+
- types-PyMySQL
123+
- types-pytz
124+
- types-setuptools

pandas/_libs/hashtable.pyi

+2
Original file line numberDiff line numberDiff line change
@@ -228,3 +228,5 @@ def ismember(
228228
arr: np.ndarray,
229229
values: np.ndarray,
230230
) -> np.ndarray: ... # np.ndarray[bool]
231+
def object_hash(obj) -> int: ...
232+
def objects_are_equal(a, b) -> bool: ...

pandas/_libs/hashtable.pyx

+10
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ from pandas._libs.khash cimport (
3434
are_equivalent_khcomplex64_t,
3535
are_equivalent_khcomplex128_t,
3636
kh_needed_n_buckets,
37+
kh_python_hash_equal,
38+
kh_python_hash_func,
3739
kh_str_t,
3840
khcomplex64_t,
3941
khcomplex128_t,
@@ -46,6 +48,14 @@ def get_hashtable_trace_domain():
4648
return KHASH_TRACE_DOMAIN
4749

4850

51+
def object_hash(obj):
52+
return kh_python_hash_func(obj)
53+
54+
55+
def objects_are_equal(a, b):
56+
return kh_python_hash_equal(a, b)
57+
58+
4959
cdef int64_t NPY_NAT = util.get_nat()
5060
SIZE_HINT_LIMIT = (1 << 20) + 7
5161

pandas/_libs/khash.pxd

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ cdef extern from "khash_python.h":
4141
bint are_equivalent_float32_t \
4242
"kh_floats_hash_equal" (float32_t a, float32_t b) nogil
4343

44+
uint32_t kh_python_hash_func(object key)
45+
bint kh_python_hash_equal(object a, object b)
46+
4447
ctypedef struct kh_pymap_t:
4548
khuint_t n_buckets, size, n_occupied, upper_bound
4649
uint32_t *flags

pandas/_libs/lib.pyi

+1-2
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,7 @@ def array_equivalent_object(
219219
left: np.ndarray, # object[:]
220220
right: np.ndarray, # object[:]
221221
) -> bool: ...
222-
def has_infs_f8(arr: np.ndarray) -> bool: ... # const float64_t[:]
223-
def has_infs_f4(arr: np.ndarray) -> bool: ... # const float32_t[:]
222+
def has_infs(arr: np.ndarray) -> bool: ... # const floating[:]
224223
def get_reverse_indexer(
225224
indexer: np.ndarray, # const intp_t[:]
226225
length: int,

0 commit comments

Comments
 (0)