Skip to content

Fix: Improve error handling in dropna for mixed data types #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 153 commits into
base: heba
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
543680d
Update guidance on CFLAGS (#61190)
WillAyd Mar 28, 2025
b69a2ae
REGR: Interpolate with method=index (#61183)
rhshadrach Mar 29, 2025
a82307f
BUG: Fix AttributeError in pd.eval for method calls on binary operati…
myenugula Mar 31, 2025
83979d6
Bump pypa/cibuildwheel from 2.23.1 to 2.23.2 (#61205)
dependabot[bot] Mar 31, 2025
4c5f4ca
Fix #60494: query doesn't work on DataFrame integer column names (#61…
David-msggc Apr 1, 2025
d4045f0
DOC: Fix ES01 for pandas.api.extensions.ExtensionDtype (#61215)
tuhinsharma121 Apr 2, 2025
7e4d306
DOC: Add details of dropna in DataFrame.pivot_table (#61184)
it176131 Apr 2, 2025
1f1e13f
MNT: Bump dev pin on NumPy (#60987)
rhshadrach Apr 3, 2025
b8abe06
DOC Removed excessive Plotly links in ecosystem.md (#61227)
star1327p Apr 3, 2025
04356be
Fix binary operations on attrs for Series and DataFrame (#59636)
fbourgey Apr 3, 2025
af16382
Fix false friends in implicit string concatenation in tests (#61228)
jbdyn Apr 3, 2025
5736b96
Restrict clipping of DataFrame.corr only when cov=False (#61214)
j-hendricks Apr 3, 2025
961931a
DOC Update the awkward-pandas GitHub link (#61241)
star1327p Apr 7, 2025
9df1430
BUG: Fix #61222: Keep index name when resampling with pyarrow dtype (…
mthiboust Apr 7, 2025
1bcdfd0
DOC: Added docstrings to min, max, and reso (#61238)
j-hendricks Apr 7, 2025
cc4f585
STY: Bump pre-commit checks (#61246)
mroeschke Apr 7, 2025
214e474
ENH: Support `Series[bool]` as indexer for `iloc.__getitem__` (#61162)
arthurlw Apr 9, 2025
920f996
BUG: Handle overlapping line and scatter on the same plot (#61244)
MartinBraquet Apr 9, 2025
b4d851c
DOC: Update the last ArcticDB link in ecosystem.md (#61258)
star1327p Apr 9, 2025
d1c6404
BLD: Try installing older Cython for windows free threading build (#6…
mroeschke Apr 9, 2025
9ff4e9c
Changed term non-null to NA (#61257)
DarthKitten2130 Apr 10, 2025
4b8c472
CI Use released numpy for Windows wheels testing (#61248)
lesteve Apr 10, 2025
adec21f
TYP: Add ignores for numpy 2.2 updates (#61265)
mroeschke Apr 10, 2025
3e8a878
WEB: Add pandas cookbook 3 to home page (#61279)
datapythonista Apr 12, 2025
64d153d
WEB: Removed Coiled as a sponsor, and update past sponsors list (#61278)
datapythonista Apr 13, 2025
38dd653
DOC: Updated link for OVH server benchmark visualization (#61108)
jackbtlr Apr 13, 2025
07c627c
API: Rename `arg` to `func` in `Series.map` (#61264)
datapythonista Apr 14, 2025
f8d6296
BUG: Improve ImportError message to suggest importing dependencies di…
chilin0525 Apr 14, 2025
ca20ea9
PERF: future_stack=True with non-MulitIndex columns (#58817)
rhshadrach Apr 14, 2025
80795df
BUG: OverflowError when fillna on DataFrame with a pd.Timestamp (#612…
PedroM4rques Apr 14, 2025
24d31b7
BUG: Fix pyarrow categoricals not working for pivot and multiindex (#…
robin-mader-bis Apr 14, 2025
183b327
DOC: Add documentation for `groupby.ewm()` (#61283)
arthurlw Apr 14, 2025
52e9767
DOC: Add documentation for `groupby.expanding()` (#61274)
arthurlw Apr 14, 2025
d739c92
Bug: Save original index and remap after function completes (#61116)
Jeffrharr Apr 15, 2025
a393c31
ENH(string dtype): fallback for HDF5 with UTF-8 surrogates (#60993)
rhshadrach Apr 16, 2025
5fef979
DOC: copyedit _base.py (#61299)
wjandrea Apr 16, 2025
5f354ca
BUG: Handle overlapping line and bar on the same plot (#61173)
MartinBraquet Apr 18, 2025
c27a309
WEB: Update benchmarks page (#61289)
rhshadrach Apr 19, 2025
a811388
BUG(string dtype): groupby/resampler.min/max returns float on all NA …
rhshadrach Apr 19, 2025
faf9785
Remove WillAyd from CODEOWNERS (#61329)
WillAyd Apr 21, 2025
7a61e1b
DOC: Add missing punctuation to merging.rst (#61315)
star1327p Apr 21, 2025
31b073c
[minor edit] fix typo: psudocode -> pseudocode (#61314)
kirisakow Apr 21, 2025
e5898b8
DEPS: Bump optional dependencies (#60655)
mroeschke Apr 21, 2025
f8d5a16
TYP: Remove unused mypy ignores (#61330)
mroeschke Apr 21, 2025
c38e1f1
DOC: Updated `groupby.ewm` arguments (#61334)
arthurlw Apr 22, 2025
dd1f69e
ENH: Update DataFrame.to_stata to handle pd.NA and None values in str…
Danferno Apr 22, 2025
09de147
ENH: Add tzdata to hard dependencies (#61308)
chilin0525 Apr 22, 2025
1ac8552
DOC Update link to "The Grammar of Graphics" book (#61341)
star1327p Apr 23, 2025
20d5b1c
BUG: pivot_table with overlapping values (#61293)
it176131 Apr 23, 2025
0fce6b4
DOC: Updated `groupby.expanding` arguments (#61352)
arthurlw Apr 25, 2025
0e0bafb
BUG: Wrong result with varying window size min/max rolling calc. (#61…
viable-alternative Apr 25, 2025
44c5613
perf: improve membership check performance in column filtering (#61046)
allrob23 Apr 26, 2025
d692ddd
[minor edit] edit definitions of some parameters with correct idiomat…
kirisakow Apr 28, 2025
2121180
DOC: Add missing period in sample docstring (#61367)
yanamis Apr 28, 2025
b519aa7
BUG: groupby.groups with NA categories fails (#61364)
rhshadrach Apr 28, 2025
26a6316
EHN: `df.to_latex(escape=True)` also escape index names (#61307)
quangngd Apr 28, 2025
c644e45
Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (#61369)
dependabot[bot] Apr 28, 2025
d79f7b0
CI: Use Cython nightlies for Windows wheel builds again (#61371)
mroeschke Apr 28, 2025
65bf9cd
BUG: Fixed issue with bar plots not stacking correctly when 'stacked'…
eicchen Apr 28, 2025
cf6de58
BUG: Series.dot for arrow and nullable dtypes returns object-dtyped s…
theavey Apr 29, 2025
07039a6
CLN: Use newer numpy random Generator methods in plotting colors (#61…
mroeschke Apr 30, 2025
caa58c7
CI: Have dedicated Python 3.13 job instead of using Python dev (#61333)
mroeschke Apr 30, 2025
e55d907
DOC: Fix dark mode text visibility in Getting Started accordion (#600…
danielpintosalazar Apr 30, 2025
337d40e
DOC: Improve `api.types.is_dtype_equal` docstring (#61394)
chilin0525 May 3, 2025
7bb58a8
[pre-commit.ci] pre-commit autoupdate (#61397)
pre-commit-ci[bot] May 5, 2025
7595ed5
BUG: Fix naive timestamps inheriting timezone from previous timestamp…
myenugula May 6, 2025
2e141aa
Subplot title count fix + fix for issue introduced in earlier PR (#6…
eicchen May 7, 2025
8045c2d
DEPS: Clean unused dependencies (#61331)
mroeschke May 8, 2025
cdc5b74
DOC: removed none from docstring (#61411)
arthurlw May 8, 2025
9c5b9ee
DOC: Updated titanic.rst survived description (#61421)
arthurlw May 9, 2025
3832e85
String dtype: more informative repr (keeping brief __str__) (#61148)
jorisvandenbossche May 10, 2025
f496acf
DOC: update pandas cheat sheet with a third page (fixes #40680) (#61378)
Shoestring42 May 11, 2025
9bfbe9e
DOC: Updates to documentation - io.rst (#61429)
ConnorWallace15 May 12, 2025
839747c
BLD: Decrease size of docker image (#61430)
huisman May 12, 2025
41968a5
CI: Fix test failures in 32-bit environment (#61423)
chilin0525 May 13, 2025
e637b42
ENH: Implement pandas.read_iceberg (#61383)
datapythonista May 14, 2025
29e0146
BUG: Impossible creation of array with dtype=string (#61263)
Manju080 May 15, 2025
b2b2d04
CI: Upgrade to ubuntu-24.04, install Python free threading from conda…
mroeschke May 15, 2025
341f161
BLD: Try using shared memory utilities in Cython to reduce wheel size…
lithomas1 May 16, 2025
17f0dd6
CI: clean up wheel build workarounds now that Cython 3.1.0 is out (#6…
rgommers May 16, 2025
3543e96
DOC: Skip parallel_coordinaes, andrews_curves doctests (#61448)
mroeschke May 16, 2025
5aa78c0
DOC: fix typo in merging.rst (#61449)
wjandrea May 17, 2025
5b0767a
DOC: User Guide Page on user-defined functions (#61195)
arthurlw May 18, 2025
6177e22
API (string dtype): implement hierarchy (NA > NaN, pyarrow > python) …
jorisvandenbossche May 19, 2025
ae8ea3e
BUG: Fix DataFrame constructor misclassification of array-like with '…
iabhi4 May 19, 2025
6879598
DOC: change `pandas.DataFrame.unstack`'s `fill_value` param to scalar…
KevsterAmp May 19, 2025
801bb24
TYP: Update typing for 3.10 (#61453)
Dr-Irv May 19, 2025
eca6bd3
PERF: Restore old performances with .isin() on columns typed as np.ui…
pbrochart May 19, 2025
7d8f5bd
DOC: fix two mistakes in missing_data.rst (#61461)
gogowitsch May 19, 2025
09a17c7
CLN: Expose arguments in DataFrame.query (#61413)
loicdiridollou May 20, 2025
c75171a
BUG: Fix #57608: queries on categorical string columns in HDFStore.se…
SofiaSM45 May 20, 2025
fe60f43
DOC: Fix pivot_table and index.name descriptions (#61455)
cmp0xff May 20, 2025
6a2da7a
BUG: round on object columns no longer raises a TypeError (#61399)
KevsterAmp May 21, 2025
1321954
DOC: Expand on different Getitem uses (#60806)
afeld May 21, 2025
e2bd8e6
Wheels for win_arm64 (#61463)
khmyznikov May 21, 2025
cfe54bd
Bug cov nat (#60898)
fbourgey May 23, 2025
09e6754
DOC: Fix incorrect reST markups in What's new (#61492)
koyuki7w May 26, 2025
50e23e7
DOC: Fix sparse and dense array memory usage comparison. (#61495)
JMRaczynski May 26, 2025
f8d93d8
DOC: Restructure and expand UDF page (#61470)
datapythonista May 27, 2025
46e1c60
DOC: Fixes dangling parenthesis in `.rst` files (#61501)
mattpopovich May 27, 2025
1ccdfe6
DOC: use Hashable instead of label (#61500)
cmp0xff May 27, 2025
71885ec
DOC: Typo in shared_docs (#61497)
wjandrea May 27, 2025
97897e1
CLN Replace direct import of closing with qualified contextlib usage …
mheguy May 27, 2025
f2f24a9
ENH: Support third-party execution engines in Series.map (#61467)
datapythonista May 27, 2025
f45cc97
ENH: Added dict support for `pd.set_option` (#61151)
arthurlw May 29, 2025
f31a4b1
BUGFIX: escape `quotechar` when `escapechar` is not None (even if quo…
KevsterAmp May 30, 2025
2378141
BUG: Fix inconsistent returned objects when applying groupby aggregat…
arthurlw May 30, 2025
8981a0f
BUG: Raise clear error for duplicate id_vars in melt (GH61475) (#61484)
ZanirP May 30, 2025
3555dbc
BUG: Fix DatetimeIndex timezone preservation when joining indexes wit…
myenugula May 30, 2025
c708e15
TST: Use external_error_raised for numpy-raised test_error_invalid_va…
mroeschke May 30, 2025
7b72112
DOC: Typo fix for .astype() in cheatsheet (#61528)
brchristian Jun 2, 2025
9069247
DOC: fix ES01 for pandas.plotting.autocorrelation_plot (#61526)
tuhinsharma121 Jun 2, 2025
279f597
BUG: Fix sorting by column named None in DataFrame.sort_values (GH#61…
iabhi4 Jun 2, 2025
4a09336
DOC: Improve lookup documentation (#61471)
stevenae Jun 2, 2025
25e6462
[pre-commit.ci] pre-commit autoupdate (#61536)
pre-commit-ci[bot] Jun 2, 2025
2cc6b1d
DOC: Move PyCapsule whatsnew note from v3.0.0 to v2.3.0 (#61553)
MarcoGorelli Jun 4, 2025
cb8ac5e
TST: Add error message for test_groupby_raises_category_on_category f…
mroeschke Jun 4, 2025
5c286b7
BUILD: Bump Cython to 3.1 (#61519)
rhshadrach Jun 4, 2025
1f6f42a
DOC: Set date for v2.3.0.rst whatsnew (#61560)
mroeschke Jun 4, 2025
e413e0f
WEB: Update versions.json for 2.3 (#61562)
mroeschke Jun 5, 2025
05f032c
BUG: Fix JSON typo that breaks javascript in the docs (#61572)
datapythonista Jun 5, 2025
1907822
DOC: Fix typos (#61580)
omahs Jun 6, 2025
eea6d0e
WEB: Refine PDEP presentation (#58791)
rhshadrach Jun 6, 2025
297bec4
BUG: Raise MergeError when suffixes result in duplicate column names …
Farsidetfs Jun 6, 2025
a62553e
DOC: Fix typo in to_html and to_string docs (#61555)
datapythonista Jun 6, 2025
90a18fc
BUILD: Add wheels for musllinux_aarch64 (#61567)
cdce8p Jun 6, 2025
6a9d50c
Avoid re-enabling the GIL at runtime (#61589)
lysnikolaou Jun 6, 2025
085e18f
CI: Update Python version to 3.11 in environment.yml (#61592)
datapythonista Jun 6, 2025
e6da5f2
WEB: Moving maintainers to inactive status (#61591)
datapythonista Jun 6, 2025
2096b28
DOC: Validate versions.json before building docs #61573 (#61578)
iabhi4 Jun 7, 2025
e2558d8
WEB: Restore website width and improve table of contents style (#61593)
datapythonista Jun 8, 2025
7d542b4
WEB: remove "String data type" from "Roadmap points pending a PDEP" s…
simonjayhawkins Jun 8, 2025
de357d3
Update whatsnew for issue #53115 (#61586)
fbourgey Jun 9, 2025
b8371f5
ENH: Implement to_iceberg (#61507)
datapythonista Jun 9, 2025
c5457f6
DOC: Title Capitalization and Grammar Fix (#61630)
kunaljani1100 Jun 11, 2025
7def76a
TST: update xfail xarray version check in to_xarray test (#61648)
jorisvandenbossche Jun 13, 2025
2bf3dc9
CI: Fix slow mamba solver issue by limiting boto3 version (#61594)
datapythonista Jun 13, 2025
41c63ab
DOC/ENH: Holiday exclusion argument (#61600)
sharkipelago Jun 13, 2025
61d9976
WEB: Replace os.path with pathlib.Path in pandas_web.py (#61604)
iabhi4 Jun 13, 2025
257b820
TST: Remove match= in test_setitem_invalid to avoid PytestWarning (#6…
iabhi4 Jun 13, 2025
e31afa1
WEB: Add table of contents to the Ecosystem (#61655)
datapythonista Jun 13, 2025
c067bcd
WEB: Clean up Ecosystem page (#61656)
datapythonista Jun 13, 2025
a9658a5
DOC: Make the benchmarks URL clickable (#61661)
star1327p Jun 16, 2025
ea9c247
fix std/var with complex array (#61646)
randolf-scholz Jun 16, 2025
25684be
ENH: Support for Orthodox Easter (#61666)
w3stling Jun 16, 2025
8b3bd48
WEB: Reorganization of the Ecosystem page (#61657)
datapythonista Jun 16, 2025
5909621
BUG: Fix RecursionError when apply native container types as a func (…
heoh Jun 16, 2025
0238efa
Fix some incorrect indents in development documentation (#61664)
koyuki7w Jun 17, 2025
8a1d5a0
DOC/ENH: Holiday days_of_week value error (#61658)
sharkipelago Jun 17, 2025
592a41a
DOC: Add release notes template for 2.3.1 (#61654)
jorisvandenbossche Jun 19, 2025
1da0d02
DOC: Fix building docs on Windows (#61686)
Dr-Irv Jun 22, 2025
38e1f9a
Fix: Improve error handling in dropna for mixed types
hebawl Jun 22, 2025
e90b017
Confirming git track with comment
hebawl Jun 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,3 @@ pandas/tests/io/parser/data export-ignore

# Include cibw script in sdist since it's needed for building wheels
scripts/cibw_before_build.sh -export-ignore
scripts/cibw_before_build_windows.sh -export-ignore
scripts/cibw_before_test_windows.sh -export-ignore
1 change: 0 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ doc/cheatsheet @Dr-Irv
doc/source/development @noatamir

# pandas
pandas/_libs/ @WillAyd
pandas/_typing.py @Dr-Irv
pandas/core/groupby/* @rhshadrach
pandas/io/excel/* @rhshadrach
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ body:
attributes:
label: Feature Description
description: >
Please describe how the new feature would be implemented, using psudocode if relevant.
Please describe how the new feature would be implemented, using pseudocode if relevant.
placeholder: >
Add a new parameter to DataFrame, to_series, to return a Series if possible.
Expand Down
7 changes: 5 additions & 2 deletions .github/actions/build_pandas/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ inputs:
editable:
description: Whether to build pandas in editable mode (default true)
default: true
werror:
description: Enable werror flag for build
default: true
runs:
using: composite
steps:
Expand All @@ -26,9 +29,9 @@ runs:
run: |
if [[ ${{ inputs.editable }} == "true" ]]; then
pip install -e . --no-build-isolation -v --no-deps \
-Csetup-args="--werror"
${{ inputs.werror == 'true' && '-Csetup-args="--werror"' || '' }}
else
pip install . --no-build-isolation -v --no-deps \
-Csetup-args="--werror"
${{ inputs.werror == 'true' && '-Csetup-args="--werror"' || '' }}
fi
shell: bash -el {0}
8 changes: 4 additions & 4 deletions .github/workflows/code-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ permissions:
jobs:
docstring_typing_manual_hooks:
name: Docstring validation, typing, and other manual pre-commit hooks
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -el {0}
Expand Down Expand Up @@ -102,7 +102,7 @@ jobs:

asv-benchmarks:
name: ASV Benchmarks
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -el {0}
Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:

build_docker_dev_environment:
name: Build Docker Dev Environment
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -el {0}
Expand All @@ -160,7 +160,7 @@ jobs:

requirements-dev-text-installable:
name: Test install requirements-dev.txt
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04

concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ permissions:

jobs:
analyze:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
actions: read
contents: read
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/comment-commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ permissions:

jobs:
issue_assign:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: (!github.event.issue.pull_request) && github.event.comment.body == 'take'
concurrency:
group: ${{ github.actor }}-issue-assign
Expand All @@ -19,7 +19,7 @@ jobs:
echo "Assigning issue ${{ github.event.issue.number }} to ${{ github.event.comment.user.login }}"
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -d '{"assignees": ["${{ github.event.comment.user.login }}"]}' https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees
preview_docs:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: github.event.issue.pull_request && github.event.comment.body == '/preview'
concurrency:
group: ${{ github.actor }}-preview-docs
Expand All @@ -29,7 +29,7 @@ jobs:
previewer-server: "https://pandas.pydata.org/preview"
artifact-job: "Doc Build and Upload"
asv_run:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
# TODO: Support more benchmarking options later, against different branches, against self, etc
if: github.event.issue.pull_request && startsWith(github.event.comment.body, '@github-actions benchmark')
defaults:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deprecation-tracking-bot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
deprecation_update:
permissions:
issues: write
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
DEPRECATION_TRACKER_ISSUE: 56596
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docbuild-and-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ permissions:
jobs:
web_and_docs:
name: Doc Build and Upload
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04

concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/package-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ defaults:
jobs:
pip:
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
extra: ["test", "pyarrow", "performance", "computation", "fss", "aws", "gcp", "excel", "parquet", "feather", "hdf5", "spss", "postgresql", "mysql", "sql-other", "html", "xml", "plot", "output-formatting", "clipboard", "compression", "all"]
Expand Down Expand Up @@ -50,7 +50,7 @@ jobs:
shell: bash -el {0}
conda_forge_recipe:
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ['3.10', '3.11']
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stale-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
permissions:
pull-requests: write
if: github.repository_owner == 'pandas-dev'
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/stale@v9
with:
Expand Down
87 changes: 27 additions & 60 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ jobs:
timeout-minutes: 90
strategy:
matrix:
platform: [ubuntu-22.04, ubuntu-24.04-arm]
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml]
platform: [ubuntu-24.04, ubuntu-24.04-arm]
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml, actions-313.yaml]
# Prevent the include jobs from overriding other jobs
pattern: [""]
pandas_future_infer_string: ["0"]
Expand All @@ -36,11 +36,15 @@ jobs:
env_file: actions-311-downstream_compat.yaml
pattern: "not slow and not network and not single_cpu"
pytest_target: "pandas/tests/test_downstream.py"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Minimum Versions"
env_file: actions-310-minimum_versions.yaml
pattern: "not slow and not network and not single_cpu"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Freethreading"
env_file: actions-313-freethreading.yaml
pattern: "not slow and not network and not single_cpu"
platform: ubuntu-24.04
- name: "Locale: it_IT"
env_file: actions-311.yaml
pattern: "not slow and not network and not single_cpu"
Expand All @@ -51,7 +55,7 @@ jobs:
# Also install it_IT (its encoding is ISO8859-1) but do not activate it.
# It will be temporarily activated during tests with locale.setlocale
extra_loc: "it_IT"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Locale: zh_CN"
env_file: actions-311.yaml
pattern: "not slow and not network and not single_cpu"
Expand All @@ -62,30 +66,30 @@ jobs:
# Also install zh_CN (its encoding is gb2312) but do not activate it.
# It will be temporarily activated during tests with locale.setlocale
extra_loc: "zh_CN"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Future infer strings"
env_file: actions-312.yaml
pandas_future_infer_string: "1"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Future infer strings (without pyarrow)"
env_file: actions-311.yaml
pandas_future_infer_string: "1"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Pypy"
env_file: actions-pypy-39.yaml
pattern: "not slow and not network and not single_cpu"
test_args: "--max-worker-restart 0"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Numpy Dev"
env_file: actions-311-numpydev.yaml
pattern: "not slow and not network and not single_cpu"
test_args: "-W error::DeprecationWarning -W error::FutureWarning"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Pyarrow Nightly"
env_file: actions-311-pyarrownightly.yaml
pattern: "not slow and not network and not single_cpu"
pandas_future_infer_string: "1"
platform: ubuntu-22.04
platform: ubuntu-24.04
fail-fast: false
name: ${{ matrix.name || format('{0} {1}', matrix.platform, matrix.env_file) }}
env:
Expand Down Expand Up @@ -165,6 +169,9 @@ jobs:
- name: Build Pandas
id: build
uses: ./.github/actions/build_pandas
with:
# xref https://github.com/cython/cython/issues/6870
werror: ${{ matrix.name != 'Freethreading' }}
# TODO: Re-enable once Pypy has Pypy 3.10 on conda-forge
if: ${{ matrix.name != 'Pypy' }}

Expand All @@ -188,7 +195,7 @@ jobs:
matrix:
# Note: Don't use macOS latest since macos 14 appears to be arm64 only
os: [macos-13, macos-14, windows-latest]
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml]
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml, actions-313.yaml]
fail-fast: false
runs-on: ${{ matrix.os }}
name: ${{ format('{0} {1}', matrix.os, matrix.env_file) }}
Expand Down Expand Up @@ -220,7 +227,7 @@ jobs:
uses: ./.github/actions/run-tests

Linux-32-bit:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: quay.io/pypa/manylinux2014_i686
options: --platform linux/386
Expand All @@ -241,12 +248,14 @@ jobs:
fi
- name: Build environment and Run Tests
# https://github.com/numpy/numpy/issues/24703#issuecomment-1722379388
# Note: Pinned to Cython 3.0.10 to avoid numerical instability in 32-bit environments
# https://github.com/pandas-dev/pandas/pull/61423
run: |
/opt/python/cp313-cp313/bin/python -m venv ~/virtualenvs/pandas-dev
. ~/virtualenvs/pandas-dev/bin/activate
python -m pip install --no-cache-dir -U pip wheel setuptools meson[ninja]==1.2.1 meson-python==0.13.1
python -m pip install numpy -Csetup-args="-Dallow-noblas=true"
python -m pip install --no-cache-dir versioneer[toml] cython python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.84.0
python -m pip install --no-cache-dir versioneer[toml] cython==3.0.10 python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.84.0
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
python -m pip list --no-cache-dir
PANDAS_CI=1 python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml
Expand All @@ -256,7 +265,7 @@ jobs:
cancel-in-progress: true

Linux-Musl:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: quay.io/pypa/musllinux_1_2_x86_64
steps:
Expand Down Expand Up @@ -316,7 +325,7 @@ jobs:
# To freeze this file, uncomment out the ``if: false`` condition, and migrate the jobs
# to the corresponding posix/windows-macos/sdist etc. workflows.
# Feel free to modify this comment as necessary.
# if: false # Uncomment this to freeze the workflow, comment it to unfreeze
if: false
defaults:
run:
shell: bash -eou pipefail {0}
Expand All @@ -325,7 +334,7 @@ jobs:
fail-fast: false
matrix:
# Separate out macOS 13 and 14, since macOS 14 is arm64 only
os: [ubuntu-22.04, macOS-13, macOS-14, windows-latest]
os: [ubuntu-24.04, macOS-13, macOS-14, windows-latest]

timeout-minutes: 90

Expand Down Expand Up @@ -362,48 +371,6 @@ jobs:
- name: Run Tests
uses: ./.github/actions/run-tests

python-freethreading:
defaults:
run:
shell: bash -eou pipefail {0}
runs-on: ubuntu-22.04

timeout-minutes: 90

concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-python-freethreading-dev
cancel-in-progress: true

env:
PYTEST_WORKERS: "auto"
PANDAS_CI: 1
PATTERN: "not slow and not network and not clipboard and not single_cpu"
PYTEST_TARGET: pandas

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python Free-threading Version
uses: deadsnakes/[email protected]
with:
python-version: 3.13-dev
nogil: true

- name: Build Environment
run: |
python --version
python -m pip install --upgrade pip setuptools wheel numpy meson[ninja]==1.2.1 meson-python==0.13.1
python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython
python -m pip install versioneer[toml] python-dateutil pytz tzdata hypothesis>=6.84.0 pytest>=7.3.2 pytest-xdist>=3.4.0 pytest-cov
python -m pip install -ve . --no-build-isolation --no-index --no-deps -Csetup-args="--werror"
python -m pip list
- name: Run Tests
uses: ./.github/actions/run-tests

# NOTE: this job must be kept in sync with the Pyodide build job in wheels.yml
emscripten:
# Note: the Python version, Emscripten toolchain version are determined
Expand All @@ -413,7 +380,7 @@ jobs:
# The Node.js version can be determined via Pyodide:
# https://pyodide.org/en/stable/usage/index.html#node-js
name: Pyodide build
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-wasm
Expand Down
Loading