maxframe 0.1.0b5__cp311-cp311-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of maxframe might be problematic. Click here for more details.
- maxframe/__init__.py +32 -0
- maxframe/_utils.cpython-311-darwin.so +0 -0
- maxframe/_utils.pxd +33 -0
- maxframe/_utils.pyx +547 -0
- maxframe/codegen.py +528 -0
- maxframe/config/__init__.py +15 -0
- maxframe/config/config.py +443 -0
- maxframe/config/tests/__init__.py +13 -0
- maxframe/config/tests/test_config.py +103 -0
- maxframe/config/tests/test_validators.py +34 -0
- maxframe/config/validators.py +57 -0
- maxframe/conftest.py +139 -0
- maxframe/core/__init__.py +65 -0
- maxframe/core/base.py +156 -0
- maxframe/core/entity/__init__.py +44 -0
- maxframe/core/entity/chunks.py +68 -0
- maxframe/core/entity/core.py +152 -0
- maxframe/core/entity/executable.py +337 -0
- maxframe/core/entity/fuse.py +73 -0
- maxframe/core/entity/objects.py +100 -0
- maxframe/core/entity/output_types.py +90 -0
- maxframe/core/entity/tileables.py +438 -0
- maxframe/core/entity/utils.py +24 -0
- maxframe/core/graph/__init__.py +17 -0
- maxframe/core/graph/builder/__init__.py +16 -0
- maxframe/core/graph/builder/base.py +86 -0
- maxframe/core/graph/builder/chunk.py +430 -0
- maxframe/core/graph/builder/tileable.py +34 -0
- maxframe/core/graph/builder/utils.py +41 -0
- maxframe/core/graph/core.cpython-311-darwin.so +0 -0
- maxframe/core/graph/core.pyx +467 -0
- maxframe/core/graph/entity.py +171 -0
- maxframe/core/graph/tests/__init__.py +13 -0
- maxframe/core/graph/tests/test_graph.py +205 -0
- maxframe/core/mode.py +96 -0
- maxframe/core/operator/__init__.py +34 -0
- maxframe/core/operator/base.py +450 -0
- maxframe/core/operator/core.py +276 -0
- maxframe/core/operator/fetch.py +53 -0
- maxframe/core/operator/fuse.py +29 -0
- maxframe/core/operator/objects.py +72 -0
- maxframe/core/operator/shuffle.py +111 -0
- maxframe/core/operator/tests/__init__.py +13 -0
- maxframe/core/operator/tests/test_core.py +64 -0
- maxframe/core/tests/__init__.py +13 -0
- maxframe/core/tests/test_mode.py +75 -0
- maxframe/dataframe/__init__.py +81 -0
- maxframe/dataframe/arithmetic/__init__.py +359 -0
- maxframe/dataframe/arithmetic/abs.py +33 -0
- maxframe/dataframe/arithmetic/add.py +60 -0
- maxframe/dataframe/arithmetic/arccos.py +28 -0
- maxframe/dataframe/arithmetic/arccosh.py +28 -0
- maxframe/dataframe/arithmetic/arcsin.py +28 -0
- maxframe/dataframe/arithmetic/arcsinh.py +28 -0
- maxframe/dataframe/arithmetic/arctan.py +28 -0
- maxframe/dataframe/arithmetic/arctanh.py +28 -0
- maxframe/dataframe/arithmetic/around.py +152 -0
- maxframe/dataframe/arithmetic/bitwise_and.py +46 -0
- maxframe/dataframe/arithmetic/bitwise_or.py +50 -0
- maxframe/dataframe/arithmetic/bitwise_xor.py +46 -0
- maxframe/dataframe/arithmetic/ceil.py +28 -0
- maxframe/dataframe/arithmetic/core.py +342 -0
- maxframe/dataframe/arithmetic/cos.py +28 -0
- maxframe/dataframe/arithmetic/cosh.py +28 -0
- maxframe/dataframe/arithmetic/degrees.py +28 -0
- maxframe/dataframe/arithmetic/docstring.py +442 -0
- maxframe/dataframe/arithmetic/equal.py +56 -0
- maxframe/dataframe/arithmetic/exp.py +28 -0
- maxframe/dataframe/arithmetic/exp2.py +28 -0
- maxframe/dataframe/arithmetic/expm1.py +28 -0
- maxframe/dataframe/arithmetic/floor.py +28 -0
- maxframe/dataframe/arithmetic/floordiv.py +64 -0
- maxframe/dataframe/arithmetic/greater.py +57 -0
- maxframe/dataframe/arithmetic/greater_equal.py +57 -0
- maxframe/dataframe/arithmetic/invert.py +33 -0
- maxframe/dataframe/arithmetic/is_ufuncs.py +62 -0
- maxframe/dataframe/arithmetic/less.py +57 -0
- maxframe/dataframe/arithmetic/less_equal.py +57 -0
- maxframe/dataframe/arithmetic/log.py +28 -0
- maxframe/dataframe/arithmetic/log10.py +28 -0
- maxframe/dataframe/arithmetic/log2.py +28 -0
- maxframe/dataframe/arithmetic/mod.py +60 -0
- maxframe/dataframe/arithmetic/multiply.py +60 -0
- maxframe/dataframe/arithmetic/negative.py +33 -0
- maxframe/dataframe/arithmetic/not_equal.py +56 -0
- maxframe/dataframe/arithmetic/power.py +68 -0
- maxframe/dataframe/arithmetic/radians.py +28 -0
- maxframe/dataframe/arithmetic/sin.py +28 -0
- maxframe/dataframe/arithmetic/sinh.py +28 -0
- maxframe/dataframe/arithmetic/sqrt.py +28 -0
- maxframe/dataframe/arithmetic/subtract.py +64 -0
- maxframe/dataframe/arithmetic/tan.py +28 -0
- maxframe/dataframe/arithmetic/tanh.py +28 -0
- maxframe/dataframe/arithmetic/tests/__init__.py +13 -0
- maxframe/dataframe/arithmetic/tests/test_arithmetic.py +695 -0
- maxframe/dataframe/arithmetic/truediv.py +64 -0
- maxframe/dataframe/arithmetic/trunc.py +28 -0
- maxframe/dataframe/arrays.py +864 -0
- maxframe/dataframe/core.py +2417 -0
- maxframe/dataframe/datasource/__init__.py +15 -0
- maxframe/dataframe/datasource/core.py +81 -0
- maxframe/dataframe/datasource/dataframe.py +59 -0
- maxframe/dataframe/datasource/date_range.py +504 -0
- maxframe/dataframe/datasource/from_index.py +54 -0
- maxframe/dataframe/datasource/from_records.py +107 -0
- maxframe/dataframe/datasource/from_tensor.py +419 -0
- maxframe/dataframe/datasource/index.py +117 -0
- maxframe/dataframe/datasource/read_csv.py +528 -0
- maxframe/dataframe/datasource/read_odps_query.py +299 -0
- maxframe/dataframe/datasource/read_odps_table.py +253 -0
- maxframe/dataframe/datasource/read_parquet.py +421 -0
- maxframe/dataframe/datasource/series.py +55 -0
- maxframe/dataframe/datasource/tests/__init__.py +13 -0
- maxframe/dataframe/datasource/tests/test_datasource.py +401 -0
- maxframe/dataframe/datastore/__init__.py +26 -0
- maxframe/dataframe/datastore/core.py +19 -0
- maxframe/dataframe/datastore/to_csv.py +227 -0
- maxframe/dataframe/datastore/to_odps.py +162 -0
- maxframe/dataframe/extensions/__init__.py +41 -0
- maxframe/dataframe/extensions/accessor.py +50 -0
- maxframe/dataframe/extensions/reshuffle.py +83 -0
- maxframe/dataframe/extensions/tests/__init__.py +13 -0
- maxframe/dataframe/extensions/tests/test_extensions.py +38 -0
- maxframe/dataframe/fetch/__init__.py +15 -0
- maxframe/dataframe/fetch/core.py +86 -0
- maxframe/dataframe/groupby/__init__.py +82 -0
- maxframe/dataframe/groupby/aggregation.py +350 -0
- maxframe/dataframe/groupby/apply.py +251 -0
- maxframe/dataframe/groupby/core.py +179 -0
- maxframe/dataframe/groupby/cum.py +124 -0
- maxframe/dataframe/groupby/fill.py +141 -0
- maxframe/dataframe/groupby/getitem.py +92 -0
- maxframe/dataframe/groupby/head.py +105 -0
- maxframe/dataframe/groupby/sample.py +214 -0
- maxframe/dataframe/groupby/tests/__init__.py +13 -0
- maxframe/dataframe/groupby/tests/test_groupby.py +374 -0
- maxframe/dataframe/groupby/transform.py +255 -0
- maxframe/dataframe/indexing/__init__.py +84 -0
- maxframe/dataframe/indexing/add_prefix_suffix.py +110 -0
- maxframe/dataframe/indexing/align.py +349 -0
- maxframe/dataframe/indexing/at.py +83 -0
- maxframe/dataframe/indexing/getitem.py +204 -0
- maxframe/dataframe/indexing/iat.py +37 -0
- maxframe/dataframe/indexing/iloc.py +566 -0
- maxframe/dataframe/indexing/insert.py +86 -0
- maxframe/dataframe/indexing/loc.py +411 -0
- maxframe/dataframe/indexing/reindex.py +526 -0
- maxframe/dataframe/indexing/rename.py +462 -0
- maxframe/dataframe/indexing/rename_axis.py +209 -0
- maxframe/dataframe/indexing/reset_index.py +402 -0
- maxframe/dataframe/indexing/sample.py +221 -0
- maxframe/dataframe/indexing/set_axis.py +194 -0
- maxframe/dataframe/indexing/set_index.py +61 -0
- maxframe/dataframe/indexing/setitem.py +130 -0
- maxframe/dataframe/indexing/tests/__init__.py +13 -0
- maxframe/dataframe/indexing/tests/test_indexing.py +488 -0
- maxframe/dataframe/indexing/where.py +308 -0
- maxframe/dataframe/initializer.py +288 -0
- maxframe/dataframe/merge/__init__.py +32 -0
- maxframe/dataframe/merge/append.py +121 -0
- maxframe/dataframe/merge/concat.py +325 -0
- maxframe/dataframe/merge/merge.py +593 -0
- maxframe/dataframe/merge/tests/__init__.py +13 -0
- maxframe/dataframe/merge/tests/test_merge.py +215 -0
- maxframe/dataframe/misc/__init__.py +134 -0
- maxframe/dataframe/misc/_duplicate.py +46 -0
- maxframe/dataframe/misc/accessor.py +276 -0
- maxframe/dataframe/misc/apply.py +692 -0
- maxframe/dataframe/misc/astype.py +236 -0
- maxframe/dataframe/misc/case_when.py +141 -0
- maxframe/dataframe/misc/check_monotonic.py +84 -0
- maxframe/dataframe/misc/cut.py +383 -0
- maxframe/dataframe/misc/datetimes.py +79 -0
- maxframe/dataframe/misc/describe.py +108 -0
- maxframe/dataframe/misc/diff.py +210 -0
- maxframe/dataframe/misc/drop.py +440 -0
- maxframe/dataframe/misc/drop_duplicates.py +248 -0
- maxframe/dataframe/misc/duplicated.py +292 -0
- maxframe/dataframe/misc/eval.py +728 -0
- maxframe/dataframe/misc/explode.py +171 -0
- maxframe/dataframe/misc/get_dummies.py +208 -0
- maxframe/dataframe/misc/isin.py +217 -0
- maxframe/dataframe/misc/map.py +236 -0
- maxframe/dataframe/misc/melt.py +162 -0
- maxframe/dataframe/misc/memory_usage.py +248 -0
- maxframe/dataframe/misc/pct_change.py +150 -0
- maxframe/dataframe/misc/pivot_table.py +262 -0
- maxframe/dataframe/misc/qcut.py +104 -0
- maxframe/dataframe/misc/select_dtypes.py +104 -0
- maxframe/dataframe/misc/shift.py +256 -0
- maxframe/dataframe/misc/stack.py +238 -0
- maxframe/dataframe/misc/string_.py +221 -0
- maxframe/dataframe/misc/tests/__init__.py +13 -0
- maxframe/dataframe/misc/tests/test_misc.py +468 -0
- maxframe/dataframe/misc/to_numeric.py +178 -0
- maxframe/dataframe/misc/transform.py +361 -0
- maxframe/dataframe/misc/transpose.py +136 -0
- maxframe/dataframe/misc/value_counts.py +182 -0
- maxframe/dataframe/missing/__init__.py +53 -0
- maxframe/dataframe/missing/checkna.py +223 -0
- maxframe/dataframe/missing/dropna.py +280 -0
- maxframe/dataframe/missing/fillna.py +275 -0
- maxframe/dataframe/missing/replace.py +439 -0
- maxframe/dataframe/missing/tests/__init__.py +13 -0
- maxframe/dataframe/missing/tests/test_missing.py +89 -0
- maxframe/dataframe/operators.py +273 -0
- maxframe/dataframe/plotting/__init__.py +40 -0
- maxframe/dataframe/plotting/core.py +78 -0
- maxframe/dataframe/plotting/tests/__init__.py +13 -0
- maxframe/dataframe/plotting/tests/test_plotting.py +136 -0
- maxframe/dataframe/reduction/__init__.py +107 -0
- maxframe/dataframe/reduction/aggregation.py +344 -0
- maxframe/dataframe/reduction/all.py +78 -0
- maxframe/dataframe/reduction/any.py +78 -0
- maxframe/dataframe/reduction/core.py +837 -0
- maxframe/dataframe/reduction/count.py +59 -0
- maxframe/dataframe/reduction/cummax.py +30 -0
- maxframe/dataframe/reduction/cummin.py +30 -0
- maxframe/dataframe/reduction/cumprod.py +30 -0
- maxframe/dataframe/reduction/cumsum.py +30 -0
- maxframe/dataframe/reduction/custom_reduction.py +42 -0
- maxframe/dataframe/reduction/kurtosis.py +104 -0
- maxframe/dataframe/reduction/max.py +65 -0
- maxframe/dataframe/reduction/mean.py +61 -0
- maxframe/dataframe/reduction/min.py +65 -0
- maxframe/dataframe/reduction/nunique.py +141 -0
- maxframe/dataframe/reduction/prod.py +76 -0
- maxframe/dataframe/reduction/reduction_size.py +36 -0
- maxframe/dataframe/reduction/sem.py +69 -0
- maxframe/dataframe/reduction/skew.py +89 -0
- maxframe/dataframe/reduction/std.py +53 -0
- maxframe/dataframe/reduction/str_concat.py +48 -0
- maxframe/dataframe/reduction/sum.py +77 -0
- maxframe/dataframe/reduction/tests/__init__.py +13 -0
- maxframe/dataframe/reduction/tests/test_reduction.py +486 -0
- maxframe/dataframe/reduction/unique.py +90 -0
- maxframe/dataframe/reduction/var.py +72 -0
- maxframe/dataframe/sort/__init__.py +34 -0
- maxframe/dataframe/sort/core.py +36 -0
- maxframe/dataframe/sort/sort_index.py +153 -0
- maxframe/dataframe/sort/sort_values.py +311 -0
- maxframe/dataframe/sort/tests/__init__.py +13 -0
- maxframe/dataframe/sort/tests/test_sort.py +81 -0
- maxframe/dataframe/statistics/__init__.py +33 -0
- maxframe/dataframe/statistics/corr.py +280 -0
- maxframe/dataframe/statistics/quantile.py +341 -0
- maxframe/dataframe/statistics/tests/__init__.py +13 -0
- maxframe/dataframe/statistics/tests/test_statistics.py +82 -0
- maxframe/dataframe/tests/__init__.py +13 -0
- maxframe/dataframe/tests/test_initializer.py +29 -0
- maxframe/dataframe/tseries/__init__.py +13 -0
- maxframe/dataframe/tseries/tests/__init__.py +13 -0
- maxframe/dataframe/tseries/tests/test_tseries.py +30 -0
- maxframe/dataframe/tseries/to_datetime.py +297 -0
- maxframe/dataframe/ufunc/__init__.py +27 -0
- maxframe/dataframe/ufunc/tensor.py +54 -0
- maxframe/dataframe/ufunc/ufunc.py +52 -0
- maxframe/dataframe/utils.py +1267 -0
- maxframe/dataframe/window/__init__.py +29 -0
- maxframe/dataframe/window/aggregation.py +96 -0
- maxframe/dataframe/window/core.py +69 -0
- maxframe/dataframe/window/ewm.py +249 -0
- maxframe/dataframe/window/expanding.py +147 -0
- maxframe/dataframe/window/rolling.py +376 -0
- maxframe/dataframe/window/tests/__init__.py +13 -0
- maxframe/dataframe/window/tests/test_ewm.py +70 -0
- maxframe/dataframe/window/tests/test_expanding.py +66 -0
- maxframe/dataframe/window/tests/test_rolling.py +57 -0
- maxframe/env.py +33 -0
- maxframe/errors.py +21 -0
- maxframe/extension.py +81 -0
- maxframe/learn/__init__.py +17 -0
- maxframe/learn/contrib/__init__.py +17 -0
- maxframe/learn/contrib/pytorch/__init__.py +16 -0
- maxframe/learn/contrib/pytorch/run_function.py +110 -0
- maxframe/learn/contrib/pytorch/run_script.py +102 -0
- maxframe/learn/contrib/pytorch/tests/__init__.py +13 -0
- maxframe/learn/contrib/pytorch/tests/test_pytorch.py +42 -0
- maxframe/learn/contrib/utils.py +52 -0
- maxframe/learn/contrib/xgboost/__init__.py +26 -0
- maxframe/learn/contrib/xgboost/classifier.py +86 -0
- maxframe/learn/contrib/xgboost/core.py +156 -0
- maxframe/learn/contrib/xgboost/dmatrix.py +150 -0
- maxframe/learn/contrib/xgboost/predict.py +138 -0
- maxframe/learn/contrib/xgboost/regressor.py +78 -0
- maxframe/learn/contrib/xgboost/tests/__init__.py +13 -0
- maxframe/learn/contrib/xgboost/tests/test_core.py +43 -0
- maxframe/learn/contrib/xgboost/train.py +121 -0
- maxframe/learn/utils/__init__.py +15 -0
- maxframe/learn/utils/core.py +29 -0
- maxframe/lib/__init__.py +15 -0
- maxframe/lib/aio/__init__.py +27 -0
- maxframe/lib/aio/_runners.py +162 -0
- maxframe/lib/aio/_threads.py +35 -0
- maxframe/lib/aio/base.py +82 -0
- maxframe/lib/aio/file.py +85 -0
- maxframe/lib/aio/isolation.py +100 -0
- maxframe/lib/aio/lru.py +242 -0
- maxframe/lib/aio/parallelism.py +37 -0
- maxframe/lib/aio/tests/__init__.py +13 -0
- maxframe/lib/aio/tests/test_aio_file.py +55 -0
- maxframe/lib/compression.py +55 -0
- maxframe/lib/cython/__init__.py +13 -0
- maxframe/lib/cython/libcpp.pxd +30 -0
- maxframe/lib/filesystem/__init__.py +21 -0
- maxframe/lib/filesystem/_glob.py +173 -0
- maxframe/lib/filesystem/_oss_lib/__init__.py +13 -0
- maxframe/lib/filesystem/_oss_lib/common.py +198 -0
- maxframe/lib/filesystem/_oss_lib/glob.py +147 -0
- maxframe/lib/filesystem/_oss_lib/handle.py +156 -0
- maxframe/lib/filesystem/arrow.py +236 -0
- maxframe/lib/filesystem/base.py +263 -0
- maxframe/lib/filesystem/core.py +95 -0
- maxframe/lib/filesystem/fsmap.py +164 -0
- maxframe/lib/filesystem/hdfs.py +31 -0
- maxframe/lib/filesystem/local.py +112 -0
- maxframe/lib/filesystem/oss.py +157 -0
- maxframe/lib/filesystem/tests/__init__.py +13 -0
- maxframe/lib/filesystem/tests/test_filesystem.py +223 -0
- maxframe/lib/filesystem/tests/test_oss.py +182 -0
- maxframe/lib/functools_compat.py +81 -0
- maxframe/lib/mmh3.cpython-311-darwin.so +0 -0
- maxframe/lib/mmh3_src/MurmurHash3.cpp +339 -0
- maxframe/lib/mmh3_src/MurmurHash3.h +43 -0
- maxframe/lib/mmh3_src/mmh3module.cpp +387 -0
- maxframe/lib/sparse/__init__.py +861 -0
- maxframe/lib/sparse/array.py +1604 -0
- maxframe/lib/sparse/core.py +92 -0
- maxframe/lib/sparse/matrix.py +241 -0
- maxframe/lib/sparse/tests/__init__.py +15 -0
- maxframe/lib/sparse/tests/test_sparse.py +476 -0
- maxframe/lib/sparse/vector.py +150 -0
- maxframe/lib/tblib/LICENSE +20 -0
- maxframe/lib/tblib/__init__.py +327 -0
- maxframe/lib/tblib/cpython.py +83 -0
- maxframe/lib/tblib/decorators.py +44 -0
- maxframe/lib/tblib/pickling_support.py +90 -0
- maxframe/lib/tests/__init__.py +13 -0
- maxframe/lib/tests/test_wrapped_pickle.py +51 -0
- maxframe/lib/version.py +620 -0
- maxframe/lib/wrapped_pickle.py +139 -0
- maxframe/mixin.py +100 -0
- maxframe/odpsio/__init__.py +21 -0
- maxframe/odpsio/arrow.py +91 -0
- maxframe/odpsio/schema.py +364 -0
- maxframe/odpsio/tableio.py +322 -0
- maxframe/odpsio/tests/__init__.py +13 -0
- maxframe/odpsio/tests/test_arrow.py +88 -0
- maxframe/odpsio/tests/test_schema.py +297 -0
- maxframe/odpsio/tests/test_tableio.py +136 -0
- maxframe/odpsio/tests/test_volumeio.py +90 -0
- maxframe/odpsio/volumeio.py +95 -0
- maxframe/opcodes.py +590 -0
- maxframe/protocol.py +415 -0
- maxframe/remote/__init__.py +18 -0
- maxframe/remote/core.py +210 -0
- maxframe/remote/run_script.py +121 -0
- maxframe/serialization/__init__.py +26 -0
- maxframe/serialization/arrow.py +95 -0
- maxframe/serialization/core.cpython-311-darwin.so +0 -0
- maxframe/serialization/core.pxd +44 -0
- maxframe/serialization/core.pyi +61 -0
- maxframe/serialization/core.pyx +1094 -0
- maxframe/serialization/exception.py +86 -0
- maxframe/serialization/maxframe_objects.py +39 -0
- maxframe/serialization/numpy.py +91 -0
- maxframe/serialization/pandas.py +202 -0
- maxframe/serialization/scipy.py +71 -0
- maxframe/serialization/serializables/__init__.py +55 -0
- maxframe/serialization/serializables/core.py +262 -0
- maxframe/serialization/serializables/field.py +624 -0
- maxframe/serialization/serializables/field_type.py +589 -0
- maxframe/serialization/serializables/tests/__init__.py +13 -0
- maxframe/serialization/serializables/tests/test_field_type.py +121 -0
- maxframe/serialization/serializables/tests/test_serializable.py +250 -0
- maxframe/serialization/tests/__init__.py +13 -0
- maxframe/serialization/tests/test_serial.py +412 -0
- maxframe/session.py +1310 -0
- maxframe/tensor/__init__.py +183 -0
- maxframe/tensor/arithmetic/__init__.py +315 -0
- maxframe/tensor/arithmetic/abs.py +68 -0
- maxframe/tensor/arithmetic/absolute.py +68 -0
- maxframe/tensor/arithmetic/add.py +82 -0
- maxframe/tensor/arithmetic/angle.py +72 -0
- maxframe/tensor/arithmetic/arccos.py +104 -0
- maxframe/tensor/arithmetic/arccosh.py +91 -0
- maxframe/tensor/arithmetic/arcsin.py +94 -0
- maxframe/tensor/arithmetic/arcsinh.py +86 -0
- maxframe/tensor/arithmetic/arctan.py +106 -0
- maxframe/tensor/arithmetic/arctan2.py +128 -0
- maxframe/tensor/arithmetic/arctanh.py +86 -0
- maxframe/tensor/arithmetic/around.py +114 -0
- maxframe/tensor/arithmetic/bitand.py +95 -0
- maxframe/tensor/arithmetic/bitor.py +102 -0
- maxframe/tensor/arithmetic/bitxor.py +95 -0
- maxframe/tensor/arithmetic/cbrt.py +66 -0
- maxframe/tensor/arithmetic/ceil.py +71 -0
- maxframe/tensor/arithmetic/clip.py +165 -0
- maxframe/tensor/arithmetic/conj.py +74 -0
- maxframe/tensor/arithmetic/copysign.py +78 -0
- maxframe/tensor/arithmetic/core.py +544 -0
- maxframe/tensor/arithmetic/cos.py +85 -0
- maxframe/tensor/arithmetic/cosh.py +72 -0
- maxframe/tensor/arithmetic/deg2rad.py +72 -0
- maxframe/tensor/arithmetic/degrees.py +77 -0
- maxframe/tensor/arithmetic/divide.py +114 -0
- maxframe/tensor/arithmetic/equal.py +76 -0
- maxframe/tensor/arithmetic/exp.py +106 -0
- maxframe/tensor/arithmetic/exp2.py +67 -0
- maxframe/tensor/arithmetic/expm1.py +79 -0
- maxframe/tensor/arithmetic/fabs.py +74 -0
- maxframe/tensor/arithmetic/fix.py +69 -0
- maxframe/tensor/arithmetic/float_power.py +103 -0
- maxframe/tensor/arithmetic/floor.py +77 -0
- maxframe/tensor/arithmetic/floordiv.py +94 -0
- maxframe/tensor/arithmetic/fmax.py +105 -0
- maxframe/tensor/arithmetic/fmin.py +106 -0
- maxframe/tensor/arithmetic/fmod.py +99 -0
- maxframe/tensor/arithmetic/frexp.py +92 -0
- maxframe/tensor/arithmetic/greater.py +77 -0
- maxframe/tensor/arithmetic/greater_equal.py +69 -0
- maxframe/tensor/arithmetic/hypot.py +77 -0
- maxframe/tensor/arithmetic/i0.py +89 -0
- maxframe/tensor/arithmetic/imag.py +67 -0
- maxframe/tensor/arithmetic/invert.py +110 -0
- maxframe/tensor/arithmetic/isclose.py +115 -0
- maxframe/tensor/arithmetic/iscomplex.py +64 -0
- maxframe/tensor/arithmetic/isfinite.py +106 -0
- maxframe/tensor/arithmetic/isinf.py +103 -0
- maxframe/tensor/arithmetic/isnan.py +82 -0
- maxframe/tensor/arithmetic/isreal.py +63 -0
- maxframe/tensor/arithmetic/ldexp.py +99 -0
- maxframe/tensor/arithmetic/less.py +69 -0
- maxframe/tensor/arithmetic/less_equal.py +69 -0
- maxframe/tensor/arithmetic/log.py +92 -0
- maxframe/tensor/arithmetic/log10.py +85 -0
- maxframe/tensor/arithmetic/log1p.py +95 -0
- maxframe/tensor/arithmetic/log2.py +85 -0
- maxframe/tensor/arithmetic/logaddexp.py +80 -0
- maxframe/tensor/arithmetic/logaddexp2.py +78 -0
- maxframe/tensor/arithmetic/logical_and.py +81 -0
- maxframe/tensor/arithmetic/logical_not.py +74 -0
- maxframe/tensor/arithmetic/logical_or.py +82 -0
- maxframe/tensor/arithmetic/logical_xor.py +88 -0
- maxframe/tensor/arithmetic/lshift.py +82 -0
- maxframe/tensor/arithmetic/maximum.py +108 -0
- maxframe/tensor/arithmetic/minimum.py +108 -0
- maxframe/tensor/arithmetic/mod.py +104 -0
- maxframe/tensor/arithmetic/modf.py +83 -0
- maxframe/tensor/arithmetic/multiply.py +81 -0
- maxframe/tensor/arithmetic/nan_to_num.py +99 -0
- maxframe/tensor/arithmetic/negative.py +65 -0
- maxframe/tensor/arithmetic/nextafter.py +68 -0
- maxframe/tensor/arithmetic/not_equal.py +72 -0
- maxframe/tensor/arithmetic/positive.py +47 -0
- maxframe/tensor/arithmetic/power.py +106 -0
- maxframe/tensor/arithmetic/rad2deg.py +71 -0
- maxframe/tensor/arithmetic/radians.py +77 -0
- maxframe/tensor/arithmetic/real.py +70 -0
- maxframe/tensor/arithmetic/reciprocal.py +76 -0
- maxframe/tensor/arithmetic/rint.py +68 -0
- maxframe/tensor/arithmetic/rshift.py +81 -0
- maxframe/tensor/arithmetic/setimag.py +29 -0
- maxframe/tensor/arithmetic/setreal.py +29 -0
- maxframe/tensor/arithmetic/sign.py +81 -0
- maxframe/tensor/arithmetic/signbit.py +65 -0
- maxframe/tensor/arithmetic/sin.py +98 -0
- maxframe/tensor/arithmetic/sinc.py +102 -0
- maxframe/tensor/arithmetic/sinh.py +93 -0
- maxframe/tensor/arithmetic/spacing.py +72 -0
- maxframe/tensor/arithmetic/sqrt.py +81 -0
- maxframe/tensor/arithmetic/square.py +69 -0
- maxframe/tensor/arithmetic/subtract.py +81 -0
- maxframe/tensor/arithmetic/tan.py +88 -0
- maxframe/tensor/arithmetic/tanh.py +92 -0
- maxframe/tensor/arithmetic/tests/__init__.py +15 -0
- maxframe/tensor/arithmetic/tests/test_arithmetic.py +414 -0
- maxframe/tensor/arithmetic/truediv.py +104 -0
- maxframe/tensor/arithmetic/trunc.py +72 -0
- maxframe/tensor/arithmetic/utils.py +65 -0
- maxframe/tensor/array_utils.py +186 -0
- maxframe/tensor/base/__init__.py +34 -0
- maxframe/tensor/base/astype.py +119 -0
- maxframe/tensor/base/atleast_1d.py +74 -0
- maxframe/tensor/base/broadcast_to.py +89 -0
- maxframe/tensor/base/ravel.py +92 -0
- maxframe/tensor/base/tests/__init__.py +13 -0
- maxframe/tensor/base/tests/test_base.py +114 -0
- maxframe/tensor/base/transpose.py +125 -0
- maxframe/tensor/base/unique.py +205 -0
- maxframe/tensor/base/where.py +127 -0
- maxframe/tensor/core.py +724 -0
- maxframe/tensor/datasource/__init__.py +32 -0
- maxframe/tensor/datasource/arange.py +156 -0
- maxframe/tensor/datasource/array.py +415 -0
- maxframe/tensor/datasource/core.py +109 -0
- maxframe/tensor/datasource/empty.py +169 -0
- maxframe/tensor/datasource/from_dataframe.py +70 -0
- maxframe/tensor/datasource/from_dense.py +54 -0
- maxframe/tensor/datasource/from_sparse.py +47 -0
- maxframe/tensor/datasource/full.py +186 -0
- maxframe/tensor/datasource/ones.py +173 -0
- maxframe/tensor/datasource/scalar.py +40 -0
- maxframe/tensor/datasource/tests/__init__.py +13 -0
- maxframe/tensor/datasource/tests/test_datasource.py +278 -0
- maxframe/tensor/datasource/zeros.py +188 -0
- maxframe/tensor/fetch/__init__.py +15 -0
- maxframe/tensor/fetch/core.py +54 -0
- maxframe/tensor/indexing/__init__.py +47 -0
- maxframe/tensor/indexing/choose.py +196 -0
- maxframe/tensor/indexing/compress.py +124 -0
- maxframe/tensor/indexing/core.py +190 -0
- maxframe/tensor/indexing/extract.py +71 -0
- maxframe/tensor/indexing/fill_diagonal.py +183 -0
- maxframe/tensor/indexing/flatnonzero.py +60 -0
- maxframe/tensor/indexing/getitem.py +175 -0
- maxframe/tensor/indexing/nonzero.py +120 -0
- maxframe/tensor/indexing/setitem.py +132 -0
- maxframe/tensor/indexing/slice.py +29 -0
- maxframe/tensor/indexing/take.py +130 -0
- maxframe/tensor/indexing/tests/__init__.py +15 -0
- maxframe/tensor/indexing/tests/test_indexing.py +234 -0
- maxframe/tensor/indexing/unravel_index.py +103 -0
- maxframe/tensor/merge/__init__.py +15 -0
- maxframe/tensor/merge/stack.py +132 -0
- maxframe/tensor/merge/tests/__init__.py +13 -0
- maxframe/tensor/merge/tests/test_merge.py +52 -0
- maxframe/tensor/operators.py +123 -0
- maxframe/tensor/random/__init__.py +168 -0
- maxframe/tensor/random/beta.py +87 -0
- maxframe/tensor/random/binomial.py +137 -0
- maxframe/tensor/random/bytes.py +39 -0
- maxframe/tensor/random/chisquare.py +110 -0
- maxframe/tensor/random/choice.py +186 -0
- maxframe/tensor/random/core.py +234 -0
- maxframe/tensor/random/dirichlet.py +123 -0
- maxframe/tensor/random/exponential.py +94 -0
- maxframe/tensor/random/f.py +135 -0
- maxframe/tensor/random/gamma.py +128 -0
- maxframe/tensor/random/geometric.py +93 -0
- maxframe/tensor/random/gumbel.py +167 -0
- maxframe/tensor/random/hypergeometric.py +148 -0
- maxframe/tensor/random/laplace.py +133 -0
- maxframe/tensor/random/logistic.py +129 -0
- maxframe/tensor/random/lognormal.py +159 -0
- maxframe/tensor/random/logseries.py +122 -0
- maxframe/tensor/random/multinomial.py +133 -0
- maxframe/tensor/random/multivariate_normal.py +192 -0
- maxframe/tensor/random/negative_binomial.py +125 -0
- maxframe/tensor/random/noncentral_chisquare.py +132 -0
- maxframe/tensor/random/noncentral_f.py +126 -0
- maxframe/tensor/random/normal.py +143 -0
- maxframe/tensor/random/pareto.py +140 -0
- maxframe/tensor/random/permutation.py +104 -0
- maxframe/tensor/random/poisson.py +111 -0
- maxframe/tensor/random/power.py +142 -0
- maxframe/tensor/random/rand.py +82 -0
- maxframe/tensor/random/randint.py +121 -0
- maxframe/tensor/random/randn.py +96 -0
- maxframe/tensor/random/random_integers.py +123 -0
- maxframe/tensor/random/random_sample.py +86 -0
- maxframe/tensor/random/rayleigh.py +110 -0
- maxframe/tensor/random/shuffle.py +61 -0
- maxframe/tensor/random/standard_cauchy.py +105 -0
- maxframe/tensor/random/standard_exponential.py +72 -0
- maxframe/tensor/random/standard_gamma.py +120 -0
- maxframe/tensor/random/standard_normal.py +74 -0
- maxframe/tensor/random/standard_t.py +135 -0
- maxframe/tensor/random/tests/__init__.py +15 -0
- maxframe/tensor/random/tests/test_random.py +167 -0
- maxframe/tensor/random/triangular.py +119 -0
- maxframe/tensor/random/uniform.py +131 -0
- maxframe/tensor/random/vonmises.py +131 -0
- maxframe/tensor/random/wald.py +114 -0
- maxframe/tensor/random/weibull.py +140 -0
- maxframe/tensor/random/zipf.py +122 -0
- maxframe/tensor/rechunk/__init__.py +26 -0
- maxframe/tensor/rechunk/rechunk.py +43 -0
- maxframe/tensor/reduction/__init__.py +66 -0
- maxframe/tensor/reduction/all.py +103 -0
- maxframe/tensor/reduction/allclose.py +88 -0
- maxframe/tensor/reduction/any.py +105 -0
- maxframe/tensor/reduction/argmax.py +103 -0
- maxframe/tensor/reduction/argmin.py +103 -0
- maxframe/tensor/reduction/array_equal.py +64 -0
- maxframe/tensor/reduction/core.py +168 -0
- maxframe/tensor/reduction/count_nonzero.py +81 -0
- maxframe/tensor/reduction/cumprod.py +97 -0
- maxframe/tensor/reduction/cumsum.py +101 -0
- maxframe/tensor/reduction/max.py +120 -0
- maxframe/tensor/reduction/mean.py +123 -0
- maxframe/tensor/reduction/min.py +120 -0
- maxframe/tensor/reduction/nanargmax.py +82 -0
- maxframe/tensor/reduction/nanargmin.py +76 -0
- maxframe/tensor/reduction/nancumprod.py +91 -0
- maxframe/tensor/reduction/nancumsum.py +94 -0
- maxframe/tensor/reduction/nanmax.py +111 -0
- maxframe/tensor/reduction/nanmean.py +106 -0
- maxframe/tensor/reduction/nanmin.py +111 -0
- maxframe/tensor/reduction/nanprod.py +94 -0
- maxframe/tensor/reduction/nanstd.py +126 -0
- maxframe/tensor/reduction/nansum.py +115 -0
- maxframe/tensor/reduction/nanvar.py +149 -0
- maxframe/tensor/reduction/prod.py +130 -0
- maxframe/tensor/reduction/std.py +134 -0
- maxframe/tensor/reduction/sum.py +125 -0
- maxframe/tensor/reduction/tests/__init__.py +13 -0
- maxframe/tensor/reduction/tests/test_reduction.py +181 -0
- maxframe/tensor/reduction/var.py +176 -0
- maxframe/tensor/reshape/__init__.py +17 -0
- maxframe/tensor/reshape/reshape.py +188 -0
- maxframe/tensor/reshape/tests/__init__.py +15 -0
- maxframe/tensor/reshape/tests/test_reshape.py +37 -0
- maxframe/tensor/statistics/__init__.py +13 -0
- maxframe/tensor/statistics/percentile.py +175 -0
- maxframe/tensor/statistics/quantile.py +288 -0
- maxframe/tensor/ufunc/__init__.py +26 -0
- maxframe/tensor/ufunc/ufunc.py +200 -0
- maxframe/tensor/utils.py +718 -0
- maxframe/tests/__init__.py +13 -0
- maxframe/tests/test_codegen.py +69 -0
- maxframe/tests/test_protocol.py +144 -0
- maxframe/tests/test_utils.py +376 -0
- maxframe/tests/utils.py +164 -0
- maxframe/typing_.py +37 -0
- maxframe/udf.py +134 -0
- maxframe/utils.py +1114 -0
- maxframe-0.1.0b5.dist-info/METADATA +104 -0
- maxframe-0.1.0b5.dist-info/RECORD +647 -0
- maxframe-0.1.0b5.dist-info/WHEEL +5 -0
- maxframe-0.1.0b5.dist-info/top_level.txt +3 -0
- maxframe_client/__init__.py +17 -0
- maxframe_client/clients/__init__.py +13 -0
- maxframe_client/clients/framedriver.py +118 -0
- maxframe_client/clients/spe.py +104 -0
- maxframe_client/conftest.py +15 -0
- maxframe_client/fetcher.py +264 -0
- maxframe_client/session/__init__.py +22 -0
- maxframe_client/session/consts.py +36 -0
- maxframe_client/session/graph.py +119 -0
- maxframe_client/session/odps.py +482 -0
- maxframe_client/session/task.py +280 -0
- maxframe_client/session/tests/__init__.py +13 -0
- maxframe_client/session/tests/test_task.py +85 -0
- maxframe_client/tests/__init__.py +13 -0
- maxframe_client/tests/test_fetcher.py +89 -0
- maxframe_client/tests/test_session.py +255 -0
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
# Copyright 1999-2024 Alibaba Group Holding Ltd.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
import warnings
|
|
16
|
+
|
|
17
|
+
from ... import opcodes
|
|
18
|
+
from ...core import get_output_types
|
|
19
|
+
from ...serialization.serializables import AnyField, StringField
|
|
20
|
+
from ..core import SERIES_TYPE
|
|
21
|
+
from ..operators import DataFrameOperator, DataFrameOperatorMixin
|
|
22
|
+
from ..utils import build_df, build_series, parse_index, validate_axis
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class DataFrameRename(DataFrameOperator, DataFrameOperatorMixin):
|
|
26
|
+
_op_type_ = opcodes.RENAME
|
|
27
|
+
|
|
28
|
+
columns_mapper = AnyField("columns_mapper", default=None)
|
|
29
|
+
index_mapper = AnyField("index_mapper", default=None)
|
|
30
|
+
new_name = AnyField("new_name", default=None)
|
|
31
|
+
level = AnyField("level", default=None)
|
|
32
|
+
errors = StringField("errors", default=None)
|
|
33
|
+
|
|
34
|
+
def __init__(self, output_types=None, **kw):
|
|
35
|
+
super().__init__(_output_types=output_types, **kw)
|
|
36
|
+
|
|
37
|
+
def _calc_renamed_df(self, df, errors="ignore"):
|
|
38
|
+
empty_df = build_df(df)
|
|
39
|
+
return empty_df.rename(
|
|
40
|
+
columns=self.columns_mapper,
|
|
41
|
+
index=self.index_mapper,
|
|
42
|
+
level=self.level,
|
|
43
|
+
errors=errors,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
def _calc_renamed_series(self, df, errors="ignore"):
|
|
47
|
+
empty_series = build_series(df, name=df.name)
|
|
48
|
+
new_series = empty_series.rename(
|
|
49
|
+
index=self.index_mapper, level=self.level, errors=errors
|
|
50
|
+
)
|
|
51
|
+
if self.new_name:
|
|
52
|
+
new_series.name = self.new_name
|
|
53
|
+
return new_series
|
|
54
|
+
|
|
55
|
+
def __call__(self, df):
|
|
56
|
+
params = df.params
|
|
57
|
+
raw_index = df.index_value.to_pandas()
|
|
58
|
+
if df.ndim == 2:
|
|
59
|
+
new_df = self._calc_renamed_df(df, errors=self.errors)
|
|
60
|
+
new_index = new_df.index
|
|
61
|
+
elif isinstance(df, SERIES_TYPE):
|
|
62
|
+
new_df = self._calc_renamed_series(df, errors=self.errors)
|
|
63
|
+
new_index = new_df.index
|
|
64
|
+
else:
|
|
65
|
+
new_df = new_index = raw_index.set_names(
|
|
66
|
+
self.index_mapper or self.new_name, level=self.level
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
if self.columns_mapper is not None:
|
|
70
|
+
params["columns_value"] = parse_index(new_df.columns, store_data=True)
|
|
71
|
+
params["dtypes"] = new_df.dtypes
|
|
72
|
+
if self.index_mapper is not None:
|
|
73
|
+
params["index_value"] = parse_index(new_index)
|
|
74
|
+
if df.ndim == 1:
|
|
75
|
+
params["name"] = new_df.name
|
|
76
|
+
return self.new_tileable([df], **params)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def _rename(
|
|
80
|
+
df_obj,
|
|
81
|
+
index_mapper=None,
|
|
82
|
+
columns_mapper=None,
|
|
83
|
+
copy=True,
|
|
84
|
+
inplace=False,
|
|
85
|
+
level=None,
|
|
86
|
+
errors="ignore",
|
|
87
|
+
):
|
|
88
|
+
if not copy:
|
|
89
|
+
raise NotImplementedError("`copy=False` not implemented")
|
|
90
|
+
|
|
91
|
+
if index_mapper is not None and errors == "raise" and not inplace:
|
|
92
|
+
warnings.warn("Errors will not raise for non-existing indices")
|
|
93
|
+
|
|
94
|
+
op = DataFrameRename(
|
|
95
|
+
columns_mapper=columns_mapper,
|
|
96
|
+
index_mapper=index_mapper,
|
|
97
|
+
level=level,
|
|
98
|
+
errors=errors,
|
|
99
|
+
output_types=get_output_types(df_obj),
|
|
100
|
+
)
|
|
101
|
+
ret = op(df_obj)
|
|
102
|
+
if inplace:
|
|
103
|
+
df_obj.data = ret.data
|
|
104
|
+
else:
|
|
105
|
+
return ret
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def df_rename(
|
|
109
|
+
df,
|
|
110
|
+
mapper=None,
|
|
111
|
+
index=None,
|
|
112
|
+
columns=None,
|
|
113
|
+
axis="index",
|
|
114
|
+
copy=True,
|
|
115
|
+
inplace=False,
|
|
116
|
+
level=None,
|
|
117
|
+
errors="ignore",
|
|
118
|
+
):
|
|
119
|
+
"""
|
|
120
|
+
Alter axes labels.
|
|
121
|
+
|
|
122
|
+
Function / dict values must be unique (1-to-1). Labels not contained in
|
|
123
|
+
a dict / Series will be left as-is. Extra labels listed don't throw an
|
|
124
|
+
error.
|
|
125
|
+
|
|
126
|
+
Parameters
|
|
127
|
+
----------
|
|
128
|
+
mapper : dict-like or function
|
|
129
|
+
Dict-like or functions transformations to apply to
|
|
130
|
+
that axis' values. Use either ``mapper`` and ``axis`` to
|
|
131
|
+
specify the axis to target with ``mapper``, or ``index`` and
|
|
132
|
+
``columns``.
|
|
133
|
+
index : dict-like or function
|
|
134
|
+
Alternative to specifying axis (``mapper, axis=0``
|
|
135
|
+
is equivalent to ``index=mapper``).
|
|
136
|
+
columns : dict-like or function
|
|
137
|
+
Alternative to specifying axis (``mapper, axis=1``
|
|
138
|
+
is equivalent to ``columns=mapper``).
|
|
139
|
+
axis : int or str
|
|
140
|
+
Axis to target with ``mapper``. Can be either the axis name
|
|
141
|
+
('index', 'columns') or number (0, 1). The default is 'index'.
|
|
142
|
+
copy : bool, default True
|
|
143
|
+
Also copy underlying data.
|
|
144
|
+
inplace : bool, default False
|
|
145
|
+
Whether to return a new DataFrame. If True then value of copy is
|
|
146
|
+
ignored.
|
|
147
|
+
level : int or level name, default None
|
|
148
|
+
In case of a MultiIndex, only rename labels in the specified
|
|
149
|
+
level.
|
|
150
|
+
errors : {'ignore', 'raise'}, default 'ignore'
|
|
151
|
+
If 'raise', raise a `KeyError` when a dict-like `mapper`, `index`,
|
|
152
|
+
or `columns` contains labels that are not present in the Index
|
|
153
|
+
being transformed.
|
|
154
|
+
If 'ignore', existing keys will be renamed and extra keys will be
|
|
155
|
+
ignored.
|
|
156
|
+
|
|
157
|
+
Returns
|
|
158
|
+
-------
|
|
159
|
+
DataFrame
|
|
160
|
+
DataFrame with the renamed axis labels.
|
|
161
|
+
|
|
162
|
+
Raises
|
|
163
|
+
------
|
|
164
|
+
KeyError
|
|
165
|
+
If any of the labels is not found in the selected axis and
|
|
166
|
+
"errors='raise'".
|
|
167
|
+
|
|
168
|
+
See Also
|
|
169
|
+
--------
|
|
170
|
+
DataFrame.rename_axis : Set the name of the axis.
|
|
171
|
+
|
|
172
|
+
Examples
|
|
173
|
+
--------
|
|
174
|
+
|
|
175
|
+
``DataFrame.rename`` supports two calling conventions
|
|
176
|
+
|
|
177
|
+
* ``(index=index_mapper, columns=columns_mapper, ...)``
|
|
178
|
+
* ``(mapper, axis={'index', 'columns'}, ...)``
|
|
179
|
+
|
|
180
|
+
We *highly* recommend using keyword arguments to clarify your
|
|
181
|
+
intent.
|
|
182
|
+
|
|
183
|
+
Rename columns using a mapping:
|
|
184
|
+
|
|
185
|
+
>>> import maxframe.dataframe as md
|
|
186
|
+
>>> df = md.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
|
|
187
|
+
>>> df.rename(columns={"A": "a", "B": "c"}).execute()
|
|
188
|
+
a c
|
|
189
|
+
0 1 4
|
|
190
|
+
1 2 5
|
|
191
|
+
2 3 6
|
|
192
|
+
|
|
193
|
+
Rename index using a mapping:
|
|
194
|
+
|
|
195
|
+
>>> df.rename(index={0: "x", 1: "y", 2: "z"}).execute()
|
|
196
|
+
A B
|
|
197
|
+
x 1 4
|
|
198
|
+
y 2 5
|
|
199
|
+
z 3 6
|
|
200
|
+
|
|
201
|
+
Cast index labels to a different type:
|
|
202
|
+
|
|
203
|
+
>>> df.index.execute()
|
|
204
|
+
RangeIndex(start=0, stop=3, step=1)
|
|
205
|
+
>>> df.rename(index=str).index.execute()
|
|
206
|
+
Index(['0', '1', '2'], dtype='object')
|
|
207
|
+
|
|
208
|
+
>>> df.rename(columns={"A": "a", "B": "b", "C": "c"}, errors="raise").execute()
|
|
209
|
+
Traceback (most recent call last):
|
|
210
|
+
KeyError: ['C'] not found in axis
|
|
211
|
+
|
|
212
|
+
Using axis-style parameters
|
|
213
|
+
|
|
214
|
+
>>> df.rename(str.lower, axis='columns').execute()
|
|
215
|
+
a b
|
|
216
|
+
0 1 4
|
|
217
|
+
1 2 5
|
|
218
|
+
2 3 6
|
|
219
|
+
|
|
220
|
+
>>> df.rename({1: 2, 2: 4}, axis='index').execute()
|
|
221
|
+
A B
|
|
222
|
+
0 1 4
|
|
223
|
+
2 2 5
|
|
224
|
+
4 3 6
|
|
225
|
+
|
|
226
|
+
"""
|
|
227
|
+
axis = validate_axis(axis, df)
|
|
228
|
+
if axis == 0:
|
|
229
|
+
index_mapper = index if index is not None else mapper
|
|
230
|
+
columns_mapper = columns
|
|
231
|
+
else:
|
|
232
|
+
columns_mapper = columns if columns is not None else mapper
|
|
233
|
+
index_mapper = index
|
|
234
|
+
|
|
235
|
+
if index_mapper is not None and errors == "raise" and not inplace:
|
|
236
|
+
warnings.warn("Errors will not raise for non-existing indices")
|
|
237
|
+
|
|
238
|
+
return _rename(
|
|
239
|
+
df,
|
|
240
|
+
index_mapper=index_mapper,
|
|
241
|
+
columns_mapper=columns_mapper,
|
|
242
|
+
copy=copy,
|
|
243
|
+
inplace=inplace,
|
|
244
|
+
level=level,
|
|
245
|
+
errors=errors,
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
def series_rename(
|
|
250
|
+
series,
|
|
251
|
+
index=None,
|
|
252
|
+
*,
|
|
253
|
+
axis="index",
|
|
254
|
+
copy=True,
|
|
255
|
+
inplace=False,
|
|
256
|
+
level=None,
|
|
257
|
+
errors="ignore"
|
|
258
|
+
):
|
|
259
|
+
"""
|
|
260
|
+
Alter Series index labels or name.
|
|
261
|
+
|
|
262
|
+
Function / dict values must be unique (1-to-1). Labels not contained in
|
|
263
|
+
a dict / Series will be left as-is. Extra labels listed don't throw an
|
|
264
|
+
error.
|
|
265
|
+
|
|
266
|
+
Alternatively, change ``Series.name`` with a scalar value.
|
|
267
|
+
|
|
268
|
+
Parameters
|
|
269
|
+
----------
|
|
270
|
+
axis : {0 or "index"}
|
|
271
|
+
Unused. Accepted for compatibility with DataFrame method only.
|
|
272
|
+
index : scalar, hashable sequence, dict-like or function, optional
|
|
273
|
+
Functions or dict-like are transformations to apply to
|
|
274
|
+
the index.
|
|
275
|
+
Scalar or hashable sequence-like will alter the ``Series.name``
|
|
276
|
+
attribute.
|
|
277
|
+
|
|
278
|
+
**kwargs
|
|
279
|
+
Additional keyword arguments passed to the function. Only the
|
|
280
|
+
"inplace" keyword is used.
|
|
281
|
+
|
|
282
|
+
Returns
|
|
283
|
+
-------
|
|
284
|
+
Series
|
|
285
|
+
Series with index labels or name altered.
|
|
286
|
+
|
|
287
|
+
See Also
|
|
288
|
+
--------
|
|
289
|
+
DataFrame.rename : Corresponding DataFrame method.
|
|
290
|
+
Series.rename_axis : Set the name of the axis.
|
|
291
|
+
|
|
292
|
+
Examples
|
|
293
|
+
--------
|
|
294
|
+
>>> import maxframe.dataframe as md
|
|
295
|
+
>>> s = md.Series([1, 2, 3])
|
|
296
|
+
>>> s.execute()
|
|
297
|
+
0 1
|
|
298
|
+
1 2
|
|
299
|
+
2 3
|
|
300
|
+
dtype: int64
|
|
301
|
+
>>> s.rename("my_name").execute() # scalar, changes Series.name.execute()
|
|
302
|
+
0 1
|
|
303
|
+
1 2
|
|
304
|
+
2 3
|
|
305
|
+
Name: my_name, dtype: int64
|
|
306
|
+
>>> s.rename(lambda x: x ** 2).execute() # function, changes labels.execute()
|
|
307
|
+
0 1
|
|
308
|
+
1 2
|
|
309
|
+
4 3
|
|
310
|
+
dtype: int64
|
|
311
|
+
>>> s.rename({1: 3, 2: 5}).execute() # mapping, changes labels.execute()
|
|
312
|
+
0 1
|
|
313
|
+
3 2
|
|
314
|
+
5 3
|
|
315
|
+
dtype: int64
|
|
316
|
+
"""
|
|
317
|
+
validate_axis(axis)
|
|
318
|
+
return _rename(
|
|
319
|
+
series,
|
|
320
|
+
index_mapper=index,
|
|
321
|
+
copy=copy,
|
|
322
|
+
inplace=inplace,
|
|
323
|
+
level=level,
|
|
324
|
+
errors=errors,
|
|
325
|
+
)
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
def index_rename(index, name, inplace=False):
|
|
329
|
+
"""
|
|
330
|
+
Alter Index or MultiIndex name.
|
|
331
|
+
|
|
332
|
+
Able to set new names without level. Defaults to returning new index.
|
|
333
|
+
Length of names must match number of levels in MultiIndex.
|
|
334
|
+
|
|
335
|
+
Parameters
|
|
336
|
+
----------
|
|
337
|
+
name : label or list of labels
|
|
338
|
+
Name(s) to set.
|
|
339
|
+
inplace : bool, default False
|
|
340
|
+
Modifies the object directly, instead of creating a new Index or
|
|
341
|
+
MultiIndex.
|
|
342
|
+
|
|
343
|
+
Returns
|
|
344
|
+
-------
|
|
345
|
+
Index
|
|
346
|
+
The same type as the caller or None if inplace is True.
|
|
347
|
+
|
|
348
|
+
See Also
|
|
349
|
+
--------
|
|
350
|
+
Index.set_names : Able to set new names partially and by level.
|
|
351
|
+
|
|
352
|
+
Examples
|
|
353
|
+
--------
|
|
354
|
+
>>> import maxframe.dataframe as md
|
|
355
|
+
>>> idx = md.Index(['A', 'C', 'A', 'B'], name='score')
|
|
356
|
+
>>> idx.rename('grade').execute()
|
|
357
|
+
Index(['A', 'C', 'A', 'B'], dtype='object', name='grade')
|
|
358
|
+
|
|
359
|
+
>>> idx = md.Index([('python', 2018),
|
|
360
|
+
... ('python', 2019),
|
|
361
|
+
... ('cobra', 2018),
|
|
362
|
+
... ('cobra', 2019)],
|
|
363
|
+
... names=['kind', 'year'])
|
|
364
|
+
>>> idx.execute()
|
|
365
|
+
MultiIndex([('python', 2018),
|
|
366
|
+
('python', 2019),
|
|
367
|
+
( 'cobra', 2018),
|
|
368
|
+
( 'cobra', 2019)],
|
|
369
|
+
names=['kind', 'year'])
|
|
370
|
+
>>> idx.rename(['species', 'year']).execute()
|
|
371
|
+
MultiIndex([('python', 2018),
|
|
372
|
+
('python', 2019),
|
|
373
|
+
( 'cobra', 2018),
|
|
374
|
+
( 'cobra', 2019)],
|
|
375
|
+
names=['species', 'year'])
|
|
376
|
+
>>> idx.rename('species').execute()
|
|
377
|
+
Traceback (most recent call last):
|
|
378
|
+
TypeError: Must pass list-like as `names`.
|
|
379
|
+
"""
|
|
380
|
+
op = DataFrameRename(index_mapper=name, output_types=get_output_types(index))
|
|
381
|
+
ret = op(index)
|
|
382
|
+
if inplace:
|
|
383
|
+
index.data = ret.data
|
|
384
|
+
else:
|
|
385
|
+
return ret
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
def index_set_names(index, names, level=None, inplace=False):
|
|
389
|
+
"""
|
|
390
|
+
Set Index or MultiIndex name.
|
|
391
|
+
|
|
392
|
+
Able to set new names partially and by level.
|
|
393
|
+
|
|
394
|
+
Parameters
|
|
395
|
+
----------
|
|
396
|
+
names : label or list of label
|
|
397
|
+
Name(s) to set.
|
|
398
|
+
level : int, label or list of int or label, optional
|
|
399
|
+
If the index is a MultiIndex, level(s) to set (None for all
|
|
400
|
+
levels). Otherwise level must be None.
|
|
401
|
+
inplace : bool, default False
|
|
402
|
+
Modifies the object directly, instead of creating a new Index or
|
|
403
|
+
MultiIndex.
|
|
404
|
+
|
|
405
|
+
Returns
|
|
406
|
+
-------
|
|
407
|
+
Index
|
|
408
|
+
The same type as the caller or None if inplace is True.
|
|
409
|
+
|
|
410
|
+
See Also
|
|
411
|
+
--------
|
|
412
|
+
Index.rename : Able to set new names without level.
|
|
413
|
+
|
|
414
|
+
Examples
|
|
415
|
+
--------
|
|
416
|
+
>>> import maxframe.dataframe as md
|
|
417
|
+
>>> idx = md.Index([1, 2, 3, 4])
|
|
418
|
+
>>> idx.execute()
|
|
419
|
+
Int64Index([1, 2, 3, 4], dtype='int64')
|
|
420
|
+
>>> idx.set_names('quarter').execute()
|
|
421
|
+
Int64Index([1, 2, 3, 4], dtype='int64', name='quarter')
|
|
422
|
+
|
|
423
|
+
>>> idx = md.MultiIndex.from_product([['python', 'cobra'],
|
|
424
|
+
... [2018, 2019]])
|
|
425
|
+
>>> idx.execute()
|
|
426
|
+
MultiIndex([('python', 2018),
|
|
427
|
+
('python', 2019),
|
|
428
|
+
( 'cobra', 2018),
|
|
429
|
+
( 'cobra', 2019)],
|
|
430
|
+
)
|
|
431
|
+
>>> idx.set_names(['kind', 'year'], inplace=True)
|
|
432
|
+
>>> idx.execute()
|
|
433
|
+
MultiIndex([('python', 2018),
|
|
434
|
+
('python', 2019),
|
|
435
|
+
( 'cobra', 2018),
|
|
436
|
+
( 'cobra', 2019)],
|
|
437
|
+
names=['kind', 'year'])
|
|
438
|
+
>>> idx.set_names('species', level=0).execute()
|
|
439
|
+
MultiIndex([('python', 2018),
|
|
440
|
+
('python', 2019),
|
|
441
|
+
( 'cobra', 2018),
|
|
442
|
+
( 'cobra', 2019)],
|
|
443
|
+
names=['species', 'year'])
|
|
444
|
+
"""
|
|
445
|
+
op = DataFrameRename(
|
|
446
|
+
index_mapper=names, level=level, output_types=get_output_types(index)
|
|
447
|
+
)
|
|
448
|
+
ret = op(index)
|
|
449
|
+
|
|
450
|
+
if inplace:
|
|
451
|
+
df_or_series = getattr(index, "_get_df_or_series", lambda: None)()
|
|
452
|
+
if df_or_series is not None:
|
|
453
|
+
from .rename_axis import rename_axis_with_level
|
|
454
|
+
|
|
455
|
+
rename_axis_with_level(
|
|
456
|
+
df_or_series, names, axis=index._axis, level=level, inplace=True
|
|
457
|
+
)
|
|
458
|
+
index.data = df_or_series.axes[index._axis].data
|
|
459
|
+
else:
|
|
460
|
+
index.data = ret.data
|
|
461
|
+
else:
|
|
462
|
+
return ret
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Copyright 1999-2024 Alibaba Group Holding Ltd.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
from ... import opcodes
|
|
16
|
+
from ...core import OutputType
|
|
17
|
+
from ...serialization.serializables import AnyField, BoolField
|
|
18
|
+
from ..core import DATAFRAME_TYPE
|
|
19
|
+
from ..operators import DataFrameOperator, DataFrameOperatorMixin
|
|
20
|
+
from ..utils import build_df, build_series, parse_index, validate_axis
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class DataFrameRenameAxis(DataFrameOperator, DataFrameOperatorMixin):
|
|
24
|
+
_op_type_ = opcodes.RENAME_AXIS
|
|
25
|
+
|
|
26
|
+
index = AnyField("index", default=None)
|
|
27
|
+
columns = AnyField("columns", default=None)
|
|
28
|
+
copy_value = BoolField("copy_value", default=None)
|
|
29
|
+
level = AnyField("level", default=None)
|
|
30
|
+
|
|
31
|
+
@staticmethod
|
|
32
|
+
def _update_params(params, obj, mapper, axis, level):
|
|
33
|
+
if obj.ndim == 2:
|
|
34
|
+
test_obj = build_df(obj)
|
|
35
|
+
else:
|
|
36
|
+
test_obj = build_series(obj)
|
|
37
|
+
|
|
38
|
+
if level is None:
|
|
39
|
+
test_obj = test_obj.rename_axis(mapper, axis=axis)
|
|
40
|
+
else:
|
|
41
|
+
test_obj.axes[axis].set_names(mapper, level=level, inplace=True)
|
|
42
|
+
|
|
43
|
+
if axis == 0:
|
|
44
|
+
params["index_value"] = parse_index(test_obj.index, store_data=False)
|
|
45
|
+
else:
|
|
46
|
+
params["dtypes"] = test_obj.dtypes
|
|
47
|
+
params["columns_value"] = parse_index(test_obj.columns, store_data=True)
|
|
48
|
+
|
|
49
|
+
def __call__(self, df_or_series):
|
|
50
|
+
params = df_or_series.params
|
|
51
|
+
|
|
52
|
+
if isinstance(df_or_series, DATAFRAME_TYPE):
|
|
53
|
+
self._output_types = [OutputType.dataframe]
|
|
54
|
+
else:
|
|
55
|
+
self._output_types = [OutputType.series]
|
|
56
|
+
|
|
57
|
+
if self.index is not None:
|
|
58
|
+
self._update_params(
|
|
59
|
+
params, df_or_series, self.index, axis=0, level=self.level
|
|
60
|
+
)
|
|
61
|
+
else:
|
|
62
|
+
self._update_params(
|
|
63
|
+
params, df_or_series, self.columns, axis=1, level=self.level
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
return self.new_tileable([df_or_series], **params)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def rename_axis_with_level(
|
|
70
|
+
df_or_series,
|
|
71
|
+
mapper=None,
|
|
72
|
+
index=None,
|
|
73
|
+
columns=None,
|
|
74
|
+
axis=0,
|
|
75
|
+
copy=True,
|
|
76
|
+
level=None,
|
|
77
|
+
inplace=False,
|
|
78
|
+
):
|
|
79
|
+
axis = validate_axis(axis, df_or_series)
|
|
80
|
+
if mapper is not None:
|
|
81
|
+
if axis == 0:
|
|
82
|
+
index = mapper
|
|
83
|
+
else:
|
|
84
|
+
columns = mapper
|
|
85
|
+
op = DataFrameRenameAxis(index=index, columns=columns, copy_value=copy, level=level)
|
|
86
|
+
result = op(df_or_series)
|
|
87
|
+
if not inplace:
|
|
88
|
+
return result
|
|
89
|
+
else:
|
|
90
|
+
df_or_series.data = result.data
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def rename_axis(
|
|
94
|
+
df_or_series,
|
|
95
|
+
mapper=None,
|
|
96
|
+
index=None,
|
|
97
|
+
columns=None,
|
|
98
|
+
axis=0,
|
|
99
|
+
copy=True,
|
|
100
|
+
inplace=False,
|
|
101
|
+
):
|
|
102
|
+
"""
|
|
103
|
+
Set the name of the axis for the index or columns.
|
|
104
|
+
|
|
105
|
+
Parameters
|
|
106
|
+
----------
|
|
107
|
+
mapper : scalar, list-like, optional
|
|
108
|
+
Value to set the axis name attribute.
|
|
109
|
+
index, columns : scalar, list-like, dict-like or function, optional
|
|
110
|
+
A scalar, list-like, dict-like or functions transformations to
|
|
111
|
+
apply to that axis' values.
|
|
112
|
+
Note that the ``columns`` parameter is not allowed if the
|
|
113
|
+
object is a Series. This parameter only apply for DataFrame
|
|
114
|
+
type objects.
|
|
115
|
+
|
|
116
|
+
Use either ``mapper`` and ``axis`` to
|
|
117
|
+
specify the axis to target with ``mapper``, or ``index``
|
|
118
|
+
and/or ``columns``.
|
|
119
|
+
|
|
120
|
+
axis : {0 or 'index', 1 or 'columns'}, default 0
|
|
121
|
+
The axis to rename.
|
|
122
|
+
copy : bool, default True
|
|
123
|
+
Also copy underlying data.
|
|
124
|
+
inplace : bool, default False
|
|
125
|
+
Modifies the object directly, instead of creating a new Series
|
|
126
|
+
or DataFrame.
|
|
127
|
+
|
|
128
|
+
Returns
|
|
129
|
+
-------
|
|
130
|
+
Series, DataFrame, or None
|
|
131
|
+
The same type as the caller or None if `inplace` is True.
|
|
132
|
+
|
|
133
|
+
See Also
|
|
134
|
+
--------
|
|
135
|
+
Series.rename : Alter Series index labels or name.
|
|
136
|
+
DataFrame.rename : Alter DataFrame index labels or name.
|
|
137
|
+
Index.rename : Set new names on index.
|
|
138
|
+
|
|
139
|
+
Notes
|
|
140
|
+
-----
|
|
141
|
+
``DataFrame.rename_axis`` supports two calling conventions
|
|
142
|
+
|
|
143
|
+
* ``(index=index_mapper, columns=columns_mapper, ...)``
|
|
144
|
+
* ``(mapper, axis={'index', 'columns'}, ...)``
|
|
145
|
+
|
|
146
|
+
The first calling convention will only modify the names of
|
|
147
|
+
the index and/or the names of the Index object that is the columns.
|
|
148
|
+
In this case, the parameter ``copy`` is ignored.
|
|
149
|
+
|
|
150
|
+
The second calling convention will modify the names of the
|
|
151
|
+
the corresponding index if mapper is a list or a scalar.
|
|
152
|
+
However, if mapper is dict-like or a function, it will use the
|
|
153
|
+
deprecated behavior of modifying the axis *labels*.
|
|
154
|
+
|
|
155
|
+
We *highly* recommend using keyword arguments to clarify your
|
|
156
|
+
intent.
|
|
157
|
+
|
|
158
|
+
Examples
|
|
159
|
+
--------
|
|
160
|
+
**Series**
|
|
161
|
+
|
|
162
|
+
>>> import maxframe.dataframe as md
|
|
163
|
+
>>> s = md.Series(["dog", "cat", "monkey"])
|
|
164
|
+
>>> s.execute()
|
|
165
|
+
0 dog
|
|
166
|
+
1 cat
|
|
167
|
+
2 monkey
|
|
168
|
+
dtype: object
|
|
169
|
+
>>> s.rename_axis("animal").execute()
|
|
170
|
+
animal
|
|
171
|
+
0 dog
|
|
172
|
+
1 cat
|
|
173
|
+
2 monkey
|
|
174
|
+
dtype: object
|
|
175
|
+
|
|
176
|
+
**DataFrame**
|
|
177
|
+
|
|
178
|
+
>>> df = md.DataFrame({"num_legs": [4, 4, 2],
|
|
179
|
+
... "num_arms": [0, 0, 2]},
|
|
180
|
+
... ["dog", "cat", "monkey"])
|
|
181
|
+
>>> df.execute()
|
|
182
|
+
num_legs num_arms
|
|
183
|
+
dog 4 0
|
|
184
|
+
cat 4 0
|
|
185
|
+
monkey 2 2
|
|
186
|
+
>>> df = df.rename_axis("animal")
|
|
187
|
+
>>> df.execute()
|
|
188
|
+
num_legs num_arms
|
|
189
|
+
animal
|
|
190
|
+
dog 4 0
|
|
191
|
+
cat 4 0
|
|
192
|
+
monkey 2 2
|
|
193
|
+
>>> df = df.rename_axis("limbs", axis="columns")
|
|
194
|
+
>>> df.execute()
|
|
195
|
+
limbs num_legs num_arms
|
|
196
|
+
animal
|
|
197
|
+
dog 4 0
|
|
198
|
+
cat 4 0
|
|
199
|
+
monkey 2 2
|
|
200
|
+
"""
|
|
201
|
+
return rename_axis_with_level(
|
|
202
|
+
df_or_series,
|
|
203
|
+
mapper=mapper,
|
|
204
|
+
index=index,
|
|
205
|
+
columns=columns,
|
|
206
|
+
axis=axis,
|
|
207
|
+
copy=copy,
|
|
208
|
+
inplace=inplace,
|
|
209
|
+
)
|