Real pandas 2.2.3 cross-compiled for iOS arm64 (all Cython extensions native).
Bundled under pandas_ios/pandas-2.2.3/ and put on sys.path by the runtime
(the wheel's hyphenated dir name isn't importable as-is, hence the path entry).
- DataFrames / Series end-to-end: construction, indexing (
loc/iloc), groupby, merge/join, pivot, resample, rolling windows, categoricals - I/O: CSV, JSON, Excel (via bundled
openpyxl), Arrow interop (pa.Table.from_pandas/.to_pandaswith the bundled pyarrow), pickle, HDF-free formats - Datetime stack (bundled
dateutil+pytzship as sourceless.pyc— tracked exceptions in.gitignoreso fresh clones work) - Interop: numpy (Accelerate-backed), matplotlib plotting,
datasets.from_pandas
| Feature | Status | Workaround |
|---|---|---|
pd.read_parquet / to_parquet |
✅ Works — pyarrow rebuilt with Parquet (see pyarrow.md) | — |
pd.read_hdf (PyTables) |
tables not bundled (HDF5 C lib) |
pickle or Arrow IPC |
pd.read_sql against remote DBs |
Driver packages (psycopg2 etc.) not bundled | sqlite3 (stdlib) works |
DataFrame.plot() GUI popups |
No desktop windows | Plots render into the CodeBench preview via matplotlib |
| Copy-on-write parallelism / threads | Fine — but no multiprocessing |
Single-process ops (pandas is single-threaded anyway) |
- A
resize-fallback hook insitecustomize.pyguards against the iOS numpy OWNDATA quirk innp.ndarray.resizepaths pandas exercises (see numpy.md).