numdaplot 0.1.0__py3-none-any.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.
- numdaplot/__init__.py +506 -0
- numdaplot/arrays/__init__.py +5 -0
- numdaplot/arrays/array.py +92 -0
- numdaplot/arrays/array_arithmetic.py +404 -0
- numdaplot/arrays/array_calculation.py +143 -0
- numdaplot/arrays/array_conversion.py +150 -0
- numdaplot/arrays/array_creation.py +371 -0
- numdaplot/arrays/array_data.py +281 -0
- numdaplot/arrays/array_layout.py +179 -0
- numdaplot/arrays/array_logic.py +227 -0
- numdaplot/arrays/array_reflected_arithmetic.py +334 -0
- numdaplot/arrays/array_refusals.py +339 -0
- numdaplot/arrays/array_selection.py +195 -0
- numdaplot/arrays/array_sorting.py +59 -0
- numdaplot/arrays/axis_number.py +58 -0
- numdaplot/arrays/calculation/__init__.py +5 -0
- numdaplot/arrays/calculation/counting_statistics.py +325 -0
- numdaplot/arrays/calculation/location_statistics.py +268 -0
- numdaplot/arrays/calculation/math_function_values.py +183 -0
- numdaplot/arrays/calculation/statistic_values.py +209 -0
- numdaplot/arrays/calculation/time_function_values.py +419 -0
- numdaplot/arrays/conversion/__init__.py +5 -0
- numdaplot/arrays/conversion/array_text.py +62 -0
- numdaplot/arrays/conversion/equality_check.py +72 -0
- numdaplot/arrays/conversion/python_values.py +70 -0
- numdaplot/arrays/conversion/time_text.py +290 -0
- numdaplot/arrays/creation/__init__.py +5 -0
- numdaplot/arrays/creation/date_parts.py +89 -0
- numdaplot/arrays/creation/date_parts_values.py +437 -0
- numdaplot/arrays/creation/distribution.py +54 -0
- numdaplot/arrays/creation/filled_values.py +58 -0
- numdaplot/arrays/creation/list_conversion.py +311 -0
- numdaplot/arrays/creation/list_shape.py +97 -0
- numdaplot/arrays/creation/normal.py +65 -0
- numdaplot/arrays/creation/numpy_conversion.py +149 -0
- numdaplot/arrays/creation/random_integers.py +104 -0
- numdaplot/arrays/creation/random_values.py +97 -0
- numdaplot/arrays/creation/range_values.py +73 -0
- numdaplot/arrays/creation/spacing.py +84 -0
- numdaplot/arrays/creation/spacing_values.py +63 -0
- numdaplot/arrays/creation/uniform.py +63 -0
- numdaplot/arrays/equality.py +68 -0
- numdaplot/arrays/layout/__init__.py +5 -0
- numdaplot/arrays/layout/sorting_values.py +113 -0
- numdaplot/arrays/layout/unique_values.py +49 -0
- numdaplot/arrays/mapping/__init__.py +5 -0
- numdaplot/arrays/mapping/mapped_values.py +286 -0
- numdaplot/arrays/mapping/unmatched.py +50 -0
- numdaplot/arrays/mapping/value_change.py +55 -0
- numdaplot/arrays/mapping/value_mapping.py +161 -0
- numdaplot/arrays/math_functions/__init__.py +5 -0
- numdaplot/arrays/math_functions/absolute.py +27 -0
- numdaplot/arrays/math_functions/cosine.py +28 -0
- numdaplot/arrays/math_functions/exponential.py +27 -0
- numdaplot/arrays/math_functions/logarithm.py +72 -0
- numdaplot/arrays/math_functions/math_function.py +58 -0
- numdaplot/arrays/math_functions/round.py +58 -0
- numdaplot/arrays/math_functions/sine.py +28 -0
- numdaplot/arrays/math_functions/square_root.py +27 -0
- numdaplot/arrays/operations/__init__.py +5 -0
- numdaplot/arrays/operations/boolean_operands.py +48 -0
- numdaplot/arrays/operations/combination.py +157 -0
- numdaplot/arrays/operations/float_errors.py +170 -0
- numdaplot/arrays/operations/integer_bounds.py +175 -0
- numdaplot/arrays/operations/integer_rules.py +397 -0
- numdaplot/arrays/operations/operand.py +139 -0
- numdaplot/arrays/operations/time_arithmetic.py +479 -0
- numdaplot/arrays/operations/time_bounds.py +286 -0
- numdaplot/arrays/operations/time_result_bounds.py +397 -0
- numdaplot/arrays/operations/transformation.py +54 -0
- numdaplot/arrays/operations/type_requirements.py +94 -0
- numdaplot/arrays/replacement.py +66 -0
- numdaplot/arrays/selection/__init__.py +5 -0
- numdaplot/arrays/selection/comparison_masks.py +131 -0
- numdaplot/arrays/selection/membership_masks.py +118 -0
- numdaplot/arrays/selection/missing_mask.py +50 -0
- numdaplot/arrays/selection/region_index.py +178 -0
- numdaplot/arrays/selection/replaced_values.py +120 -0
- numdaplot/arrays/selection/rule_mask.py +83 -0
- numdaplot/arrays/selection/time_reference.py +172 -0
- numdaplot/arrays/shape.py +74 -0
- numdaplot/arrays/type_match.py +51 -0
- numdaplot/data_types/__init__.py +5 -0
- numdaplot/data_types/library.py +57 -0
- numdaplot/data_types/numpy_mapping.py +207 -0
- numdaplot/data_types/pandas_mapping.py +114 -0
- numdaplot/data_types/time_of_day.py +292 -0
- numdaplot/data_types/type.py +224 -0
- numdaplot/data_types/value_family.py +149 -0
- numdaplot/data_types/value_type.py +147 -0
- numdaplot/dates/__init__.py +5 -0
- numdaplot/dates/custom_date_format.py +83 -0
- numdaplot/dates/date_format.py +120 -0
- numdaplot/dates/date_part.py +59 -0
- numdaplot/dates/date_part_unit.py +153 -0
- numdaplot/dates/date_period.py +57 -0
- numdaplot/dates/duration_in.py +58 -0
- numdaplot/dates/duration_unit.py +90 -0
- numdaplot/dates/period_unit.py +101 -0
- numdaplot/dates/time_function.py +56 -0
- numdaplot/dates/time_zone.py +68 -0
- numdaplot/dates/time_zone_change.py +71 -0
- numdaplot/dates/time_zone_mode.py +81 -0
- numdaplot/dates/to_duration.py +58 -0
- numdaplot/errors/__init__.py +7 -0
- numdaplot/errors/broadcast_warning.py +36 -0
- numdaplot/errors/calculation_warning.py +35 -0
- numdaplot/errors/cell_out_of_range_error.py +77 -0
- numdaplot/errors/column_not_found_error.py +64 -0
- numdaplot/errors/conflicting_settings_error.py +60 -0
- numdaplot/errors/dimension_error.py +62 -0
- numdaplot/errors/display_warning.py +32 -0
- numdaplot/errors/duplicate_column_error.py +82 -0
- numdaplot/errors/duplicate_label_error.py +55 -0
- numdaplot/errors/duplicate_statistic_error.py +55 -0
- numdaplot/errors/duplicate_value_error.py +54 -0
- numdaplot/errors/empty_array_error.py +55 -0
- numdaplot/errors/empty_list_error.py +52 -0
- numdaplot/errors/empty_region_error.py +34 -0
- numdaplot/errors/empty_text_error.py +34 -0
- numdaplot/errors/empty_total_error.py +62 -0
- numdaplot/errors/empty_values_error.py +34 -0
- numdaplot/errors/file_access_error.py +70 -0
- numdaplot/errors/file_exists_error.py +62 -0
- numdaplot/errors/file_not_found_error.py +56 -0
- numdaplot/errors/incompatible_charts_error.py +80 -0
- numdaplot/errors/incompatible_types_error.py +104 -0
- numdaplot/errors/integer_overflow_error.py +61 -0
- numdaplot/errors/invalid_base_error.py +52 -0
- numdaplot/errors/invalid_bin_width_error.py +66 -0
- numdaplot/errors/invalid_bounds_error.py +58 -0
- numdaplot/errors/invalid_chart_data_error.py +81 -0
- numdaplot/errors/invalid_color_count_error.py +63 -0
- numdaplot/errors/invalid_color_error.py +51 -0
- numdaplot/errors/invalid_column_name_error.py +52 -0
- numdaplot/errors/invalid_conversion_error.py +119 -0
- numdaplot/errors/invalid_count_error.py +61 -0
- numdaplot/errors/invalid_date_format_error.py +51 -0
- numdaplot/errors/invalid_deviation_error.py +52 -0
- numdaplot/errors/invalid_fraction_error.py +51 -0
- numdaplot/errors/invalid_label_count_error.py +61 -0
- numdaplot/errors/invalid_limits_error.py +111 -0
- numdaplot/errors/invalid_opacity_error.py +52 -0
- numdaplot/errors/invalid_point_size_error.py +52 -0
- numdaplot/errors/invalid_position_error.py +106 -0
- numdaplot/errors/invalid_resolution_error.py +51 -0
- numdaplot/errors/invalid_rotation_error.py +53 -0
- numdaplot/errors/invalid_seed_error.py +53 -0
- numdaplot/errors/invalid_separator_error.py +52 -0
- numdaplot/errors/invalid_shape_error.py +52 -0
- numdaplot/errors/invalid_sheet_name_error.py +54 -0
- numdaplot/errors/invalid_size_error.py +58 -0
- numdaplot/errors/invalid_step_error.py +77 -0
- numdaplot/errors/invalid_suffixes_error.py +61 -0
- numdaplot/errors/invalid_time_zone_change_error.py +63 -0
- numdaplot/errors/invalid_type_error.py +79 -0
- numdaplot/errors/irregular_list_error.py +36 -0
- numdaplot/errors/join_relation_error.py +183 -0
- numdaplot/errors/missing_dependency_error.py +58 -0
- numdaplot/errors/missing_type_error.py +36 -0
- numdaplot/errors/missing_value_error.py +62 -0
- numdaplot/errors/not_single_value_error.py +53 -0
- numdaplot/errors/numdaplot_error.py +25 -0
- numdaplot/errors/numdaplot_warning.py +34 -0
- numdaplot/errors/occupied_cell_error.py +63 -0
- numdaplot/errors/out_of_domain_error.py +70 -0
- numdaplot/errors/readability_warning.py +35 -0
- numdaplot/errors/refused_operation_error.py +64 -0
- numdaplot/errors/refused_setting_error.py +60 -0
- numdaplot/errors/rejected_dates.py +60 -0
- numdaplot/errors/repeated_key.py +36 -0
- numdaplot/errors/shape_mismatch_error.py +67 -0
- numdaplot/errors/time_overflow_error.py +131 -0
- numdaplot/errors/time_zone_mismatch_error.py +83 -0
- numdaplot/errors/unknown_time_zone_error.py +51 -0
- numdaplot/errors/unmatched_value_error.py +81 -0
- numdaplot/errors/unsupported_image_format_error.py +56 -0
- numdaplot/errors/unsupported_index_error.py +38 -0
- numdaplot/errors/unsupported_missing_error.py +129 -0
- numdaplot/errors/unsupported_type_error.py +62 -0
- numdaplot/errors/value_conversion_error.py +215 -0
- numdaplot/ordering/__init__.py +5 -0
- numdaplot/ordering/missing_position.py +46 -0
- numdaplot/ordering/order.py +46 -0
- numdaplot/package_version.py +36 -0
- numdaplot/plots/__init__.py +5 -0
- numdaplot/plots/chart_layer.py +47 -0
- numdaplot/plots/charts/__init__.py +5 -0
- numdaplot/plots/charts/bar_chart.py +98 -0
- numdaplot/plots/charts/bar_layout.py +58 -0
- numdaplot/plots/charts/bin_count.py +61 -0
- numdaplot/plots/charts/bin_width.py +78 -0
- numdaplot/plots/charts/box_chart.py +97 -0
- numdaplot/plots/charts/cell_values.py +61 -0
- numdaplot/plots/charts/chart.py +59 -0
- numdaplot/plots/charts/chart_settings.py +105 -0
- numdaplot/plots/charts/color_scale.py +147 -0
- numdaplot/plots/charts/heatmap_chart.py +92 -0
- numdaplot/plots/charts/histogram_chart.py +93 -0
- numdaplot/plots/charts/line_chart.py +100 -0
- numdaplot/plots/charts/line_type.py +75 -0
- numdaplot/plots/charts/marker_shape.py +113 -0
- numdaplot/plots/charts/missing_chart.py +60 -0
- numdaplot/plots/charts/missing_map_chart.py +27 -0
- numdaplot/plots/charts/orientation.py +58 -0
- numdaplot/plots/charts/outliers.py +49 -0
- numdaplot/plots/charts/percentages.py +55 -0
- numdaplot/plots/charts/pie_chart.py +87 -0
- numdaplot/plots/charts/scatter_chart.py +159 -0
- numdaplot/plots/charts/value_axis.py +66 -0
- numdaplot/plots/data/__init__.py +5 -0
- numdaplot/plots/data/array_values.py +128 -0
- numdaplot/plots/data/chart_data.py +143 -0
- numdaplot/plots/data/chart_values.py +109 -0
- numdaplot/plots/data/column_reading.py +468 -0
- numdaplot/plots/data/heatmap_values.py +63 -0
- numdaplot/plots/data/missing_cells.py +165 -0
- numdaplot/plots/data/pie_values.py +215 -0
- numdaplot/plots/data/point_values.py +249 -0
- numdaplot/plots/data/position_kind.py +83 -0
- numdaplot/plots/data/renamed_layers.py +340 -0
- numdaplot/plots/data/sample_values.py +160 -0
- numdaplot/plots/data/shown_columns.py +248 -0
- numdaplot/plots/data/table_values.py +256 -0
- numdaplot/plots/data/unique_labels.py +45 -0
- numdaplot/plots/drawing/__init__.py +5 -0
- numdaplot/plots/drawing/bar_drawing.py +316 -0
- numdaplot/plots/drawing/box_drawing.py +344 -0
- numdaplot/plots/drawing/cell_merging.py +237 -0
- numdaplot/plots/drawing/chart_texts.py +124 -0
- numdaplot/plots/drawing/color_bar.py +57 -0
- numdaplot/plots/drawing/color_scale_values.py +120 -0
- numdaplot/plots/drawing/default_labels.py +41 -0
- numdaplot/plots/drawing/drawn_chart.py +50 -0
- numdaplot/plots/drawing/grid_axes.py +75 -0
- numdaplot/plots/drawing/heatmap_drawing.py +313 -0
- numdaplot/plots/drawing/histogram_drawing.py +350 -0
- numdaplot/plots/drawing/label_room.py +344 -0
- numdaplot/plots/drawing/label_thinning.py +216 -0
- numdaplot/plots/drawing/layer_alignment.py +319 -0
- numdaplot/plots/drawing/layer_colors.py +123 -0
- numdaplot/plots/drawing/line_drawing.py +85 -0
- numdaplot/plots/drawing/marker_codes.py +20 -0
- numdaplot/plots/drawing/missing_drawing.py +360 -0
- numdaplot/plots/drawing/moment_period_formatter.py +253 -0
- numdaplot/plots/drawing/pie_drawing.py +185 -0
- numdaplot/plots/drawing/plot_axes.py +38 -0
- numdaplot/plots/drawing/plot_drawing.py +288 -0
- numdaplot/plots/drawing/plot_theme.py +45 -0
- numdaplot/plots/drawing/position_axis.py +278 -0
- numdaplot/plots/drawing/scatter_drawing.py +364 -0
- numdaplot/plots/drawing/series_colors.py +177 -0
- numdaplot/plots/drawing/size_inches.py +45 -0
- numdaplot/plots/drawing/style_drawing.py +410 -0
- numdaplot/plots/drawing/text_contrast.py +44 -0
- numdaplot/plots/drawing/tick_rotation.py +354 -0
- numdaplot/plots/drawing/time_axis.py +212 -0
- numdaplot/plots/drawing/whole_numbers.py +72 -0
- numdaplot/plots/figure/__init__.py +5 -0
- numdaplot/plots/figure/cell.py +95 -0
- numdaplot/plots/figure/figure.py +256 -0
- numdaplot/plots/figure/figure_drawing.py +99 -0
- numdaplot/plots/figure/figure_style.py +60 -0
- numdaplot/plots/figure/layout.py +71 -0
- numdaplot/plots/figure/placement.py +150 -0
- numdaplot/plots/layer_reading.py +166 -0
- numdaplot/plots/output/__init__.py +5 -0
- numdaplot/plots/output/image_saving.py +187 -0
- numdaplot/plots/output/plot_display.py +181 -0
- numdaplot/plots/output/shown_object.py +45 -0
- numdaplot/plots/overlay_checks.py +245 -0
- numdaplot/plots/plot.py +31 -0
- numdaplot/plots/plot_data.py +140 -0
- numdaplot/plots/plot_distribution_creation.py +237 -0
- numdaplot/plots/plot_output.py +124 -0
- numdaplot/plots/plot_overlays.py +273 -0
- numdaplot/plots/plot_overview_creation.py +195 -0
- numdaplot/plots/plot_series_creation.py +213 -0
- numdaplot/plots/style/__init__.py +5 -0
- numdaplot/plots/style/axis_settings.py +60 -0
- numdaplot/plots/style/color.py +168 -0
- numdaplot/plots/style/custom_color.py +65 -0
- numdaplot/plots/style/grid_lines.py +49 -0
- numdaplot/plots/style/image_options.py +71 -0
- numdaplot/plots/style/legend_position.py +149 -0
- numdaplot/plots/style/plot_style.py +136 -0
- numdaplot/plots/style/size.py +70 -0
- numdaplot/plots/style/size_unit.py +62 -0
- numdaplot/positions/__init__.py +5 -0
- numdaplot/positions/axis.py +54 -0
- numdaplot/positions/index.py +51 -0
- numdaplot/positions/range.py +90 -0
- numdaplot/positions/region.py +92 -0
- numdaplot/py.typed +0 -0
- numdaplot/ratios/__init__.py +5 -0
- numdaplot/ratios/fraction.py +40 -0
- numdaplot/ratios/measure.py +48 -0
- numdaplot/rules/__init__.py +5 -0
- numdaplot/rules/between.py +78 -0
- numdaplot/rules/bounds.py +83 -0
- numdaplot/rules/case.py +48 -0
- numdaplot/rules/contains.py +63 -0
- numdaplot/rules/equal.py +43 -0
- numdaplot/rules/greater.py +39 -0
- numdaplot/rules/greater_or_equal.py +38 -0
- numdaplot/rules/is_in.py +67 -0
- numdaplot/rules/is_missing.py +25 -0
- numdaplot/rules/is_present.py +25 -0
- numdaplot/rules/less.py +39 -0
- numdaplot/rules/less_or_equal.py +38 -0
- numdaplot/rules/not_equal.py +45 -0
- numdaplot/rules/rule.py +62 -0
- numdaplot/rules/rule_values.py +44 -0
- numdaplot/rules/value_rule.py +110 -0
- numdaplot/settings/__init__.py +5 -0
- numdaplot/settings/argument_types.py +327 -0
- numdaplot/settings/field_types.py +593 -0
- numdaplot/statistics/__init__.py +5 -0
- numdaplot/statistics/count.py +71 -0
- numdaplot/statistics/count_distinct.py +27 -0
- numdaplot/statistics/counted_missing.py +46 -0
- numdaplot/statistics/maximum.py +27 -0
- numdaplot/statistics/mean.py +27 -0
- numdaplot/statistics/median.py +27 -0
- numdaplot/statistics/minimum.py +27 -0
- numdaplot/statistics/most_frequent.py +27 -0
- numdaplot/statistics/most_frequent_count.py +27 -0
- numdaplot/statistics/quantile.py +61 -0
- numdaplot/statistics/standard_deviation.py +29 -0
- numdaplot/statistics/statistic.py +63 -0
- numdaplot/statistics/sum.py +27 -0
- numdaplot/tables/__init__.py +5 -0
- numdaplot/tables/aggregation/__init__.py +5 -0
- numdaplot/tables/aggregation/aggregated_frame.py +189 -0
- numdaplot/tables/aggregation/aggregation.py +97 -0
- numdaplot/tables/aggregation/calculation.py +123 -0
- numdaplot/tables/aggregation/result_column.py +108 -0
- numdaplot/tables/aggregation/row_groups.py +96 -0
- numdaplot/tables/aggregation/statistic_name.py +122 -0
- numdaplot/tables/columns/__init__.py +5 -0
- numdaplot/tables/columns/added_column.py +89 -0
- numdaplot/tables/columns/boolean_conversion.py +144 -0
- numdaplot/tables/columns/boolean_rule.py +59 -0
- numdaplot/tables/columns/bracket_end.py +50 -0
- numdaplot/tables/columns/bracket_names.py +346 -0
- numdaplot/tables/columns/bracketed_column.py +179 -0
- numdaplot/tables/columns/brackets.py +234 -0
- numdaplot/tables/columns/chosen_columns.py +55 -0
- numdaplot/tables/columns/column_choice.py +84 -0
- numdaplot/tables/columns/column_mode.py +64 -0
- numdaplot/tables/columns/column_names.py +186 -0
- numdaplot/tables/columns/conversion.py +103 -0
- numdaplot/tables/columns/converted_column.py +669 -0
- numdaplot/tables/columns/date_conversion.py +526 -0
- numdaplot/tables/columns/date_range.py +135 -0
- numdaplot/tables/columns/name_change.py +67 -0
- numdaplot/tables/columns/new_column.py +79 -0
- numdaplot/tables/columns/number_conversion.py +281 -0
- numdaplot/tables/columns/renamed_columns.py +60 -0
- numdaplot/tables/columns/renaming.py +81 -0
- numdaplot/tables/columns/text_conversion.py +70 -0
- numdaplot/tables/columns/time_conversion.py +313 -0
- numdaplot/tables/columns/time_zone_conversion.py +128 -0
- numdaplot/tables/conflict.py +68 -0
- numdaplot/tables/description/__init__.py +5 -0
- numdaplot/tables/description/described_frame.py +335 -0
- numdaplot/tables/description/description.py +155 -0
- numdaplot/tables/duplicates/__init__.py +5 -0
- numdaplot/tables/duplicates/deduplicated_frame.py +66 -0
- numdaplot/tables/duplicates/deduplication.py +88 -0
- numdaplot/tables/duplicates/keep.py +81 -0
- numdaplot/tables/files/__init__.py +5 -0
- numdaplot/tables/files/column_names.py +60 -0
- numdaplot/tables/files/csv_file.py +265 -0
- numdaplot/tables/files/csv_read_options.py +89 -0
- numdaplot/tables/files/csv_separator.py +41 -0
- numdaplot/tables/files/csv_write_options.py +79 -0
- numdaplot/tables/files/decimal_count.py +42 -0
- numdaplot/tables/files/encoding.py +82 -0
- numdaplot/tables/files/excel_file.py +171 -0
- numdaplot/tables/files/excel_read_options.py +79 -0
- numdaplot/tables/files/excel_sheet.py +50 -0
- numdaplot/tables/files/excel_time_cells.py +146 -0
- numdaplot/tables/files/excel_write_options.py +63 -0
- numdaplot/tables/files/file_access.py +152 -0
- numdaplot/tables/files/file_paths.py +106 -0
- numdaplot/tables/files/json_decimals.py +387 -0
- numdaplot/tables/files/json_file.py +203 -0
- numdaplot/tables/files/json_layout.py +63 -0
- numdaplot/tables/files/json_read_options.py +64 -0
- numdaplot/tables/files/json_write_options.py +71 -0
- numdaplot/tables/files/missing_texts.py +63 -0
- numdaplot/tables/files/optional_package.py +42 -0
- numdaplot/tables/files/pandas_backend.py +11 -0
- numdaplot/tables/files/parquet_file.py +91 -0
- numdaplot/tables/files/parquet_read_options.py +56 -0
- numdaplot/tables/files/sas_file.py +94 -0
- numdaplot/tables/files/sas_read_options.py +67 -0
- numdaplot/tables/files/stata_file.py +83 -0
- numdaplot/tables/files/stata_read_options.py +56 -0
- numdaplot/tables/files/xpt_read_options.py +65 -0
- numdaplot/tables/filtering/__init__.py +5 -0
- numdaplot/tables/filtering/checked_frame.py +60 -0
- numdaplot/tables/filtering/column_mask.py +71 -0
- numdaplot/tables/filtering/column_match.py +62 -0
- numdaplot/tables/filtering/condition.py +94 -0
- numdaplot/tables/filtering/filter.py +74 -0
- numdaplot/tables/filtering/filter_mode.py +67 -0
- numdaplot/tables/filtering/row_mask.py +152 -0
- numdaplot/tables/filtering/rule_moments.py +164 -0
- numdaplot/tables/frames/__init__.py +5 -0
- numdaplot/tables/frames/array_frame.py +95 -0
- numdaplot/tables/frames/cleaned_names.py +132 -0
- numdaplot/tables/frames/column.py +15 -0
- numdaplot/tables/frames/column_values.py +273 -0
- numdaplot/tables/frames/frame_equality.py +130 -0
- numdaplot/tables/frames/frame_normalization.py +459 -0
- numdaplot/tables/frames/named_column_errors.py +85 -0
- numdaplot/tables/frames/pandas_decimals.py +113 -0
- numdaplot/tables/frames/region_positions.py +113 -0
- numdaplot/tables/frames/table_text.py +222 -0
- numdaplot/tables/frames/time_columns.py +345 -0
- numdaplot/tables/frames/time_range_errors.py +117 -0
- numdaplot/tables/frames/time_zones.py +271 -0
- numdaplot/tables/joining/__init__.py +5 -0
- numdaplot/tables/joining/join.py +110 -0
- numdaplot/tables/joining/join_keys.py +367 -0
- numdaplot/tables/joining/join_mode.py +93 -0
- numdaplot/tables/joining/join_relation.py +149 -0
- numdaplot/tables/joining/join_suffixes.py +71 -0
- numdaplot/tables/joining/joined_frame.py +166 -0
- numdaplot/tables/joining/joined_names.py +107 -0
- numdaplot/tables/joining/joined_rows.py +235 -0
- numdaplot/tables/joining/key_types.py +57 -0
- numdaplot/tables/joining/relation.py +78 -0
- numdaplot/tables/missing/__init__.py +5 -0
- numdaplot/tables/missing/missing_count.py +59 -0
- numdaplot/tables/missing/missing_counts.py +214 -0
- numdaplot/tables/missing/missing_drop.py +98 -0
- numdaplot/tables/missing/missing_mode.py +63 -0
- numdaplot/tables/missing/missing_ratio.py +71 -0
- numdaplot/tables/missing/missing_removal.py +257 -0
- numdaplot/tables/missing/missing_summary.py +174 -0
- numdaplot/tables/missing/ratio_comparison.py +70 -0
- numdaplot/tables/pivot/__init__.py +5 -0
- numdaplot/tables/pivot/pivot_table.py +104 -0
- numdaplot/tables/pivot/pivoted_frame.py +244 -0
- numdaplot/tables/preview/__init__.py +5 -0
- numdaplot/tables/preview/notebook_display.py +238 -0
- numdaplot/tables/preview/preview.py +100 -0
- numdaplot/tables/preview/preview_rows.py +55 -0
- numdaplot/tables/preview/shown_columns.py +62 -0
- numdaplot/tables/preview/side.py +82 -0
- numdaplot/tables/sorting/__init__.py +5 -0
- numdaplot/tables/sorting/sort_key.py +71 -0
- numdaplot/tables/sorting/sorted_frame.py +81 -0
- numdaplot/tables/sorting/sorting.py +82 -0
- numdaplot/tables/table.py +71 -0
- numdaplot/tables/table_calculation.py +172 -0
- numdaplot/tables/table_columns.py +214 -0
- numdaplot/tables/table_conversion.py +351 -0
- numdaplot/tables/table_data.py +321 -0
- numdaplot/tables/table_display.py +56 -0
- numdaplot/tables/table_joining.py +80 -0
- numdaplot/tables/table_layout.py +105 -0
- numdaplot/tables/table_missing.py +146 -0
- numdaplot/tables/table_reading.py +451 -0
- numdaplot/tables/table_refusals.py +295 -0
- numdaplot/tables/table_selection.py +163 -0
- numdaplot/tables/table_writing.py +269 -0
- numdaplot-0.1.0.dist-info/METADATA +176 -0
- numdaplot-0.1.0.dist-info/RECORD +474 -0
- numdaplot-0.1.0.dist-info/WHEEL +4 -0
- numdaplot-0.1.0.dist-info/licenses/LICENSE +28 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Python operations refused by a Table, each pointing to the numdaplot way of doing it.
|
|
3
|
+
|
|
4
|
+
.. versionadded:: 0.1.0
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from collections.abc import Iterator
|
|
8
|
+
from typing import NoReturn
|
|
9
|
+
|
|
10
|
+
from numdaplot.errors.refused_operation_error import RefusedOperationError
|
|
11
|
+
from numdaplot.tables.table_data import TableData
|
|
12
|
+
|
|
13
|
+
COMPARISON_OPERATION = "Comparing a Table with {symbol}"
|
|
14
|
+
EQUALITY_ALTERNATIVE = "is_equal with ndp.Equality"
|
|
15
|
+
ORDER_ALTERNATIVE = "filter with a rule such as ndp.Greater"
|
|
16
|
+
BRACKETS_OPERATION = "Brackets on a Table"
|
|
17
|
+
BRACKETS_ALTERNATIVE = "column, take or filter"
|
|
18
|
+
ITERATION_OPERATION = "Iterating over a Table with for"
|
|
19
|
+
ITERATION_ALTERNATIVE = "for value in table.column(name).to_list()"
|
|
20
|
+
MEMBERSHIP_OPERATION = "Testing membership in a Table with in"
|
|
21
|
+
MEMBERSHIP_ALTERNATIVE = "filter with ndp.Equal or ndp.IsIn, or column_names"
|
|
22
|
+
LENGTH_OPERATION = "len of a Table"
|
|
23
|
+
LENGTH_ALTERNATIVE = "the row_count attribute"
|
|
24
|
+
TRUTH_OPERATION = "Testing a Table as a boolean"
|
|
25
|
+
TRUTH_ALTERNATIVE = "the row_count attribute, or is_equal"
|
|
26
|
+
EQUAL_SYMBOL = "=="
|
|
27
|
+
NOT_EQUAL_SYMBOL = "!="
|
|
28
|
+
LESS_SYMBOL = "<"
|
|
29
|
+
LESS_OR_EQUAL_SYMBOL = "<="
|
|
30
|
+
GREATER_SYMBOL = ">"
|
|
31
|
+
GREATER_OR_EQUAL_SYMBOL = ">="
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class TableRefusals(TableData):
|
|
35
|
+
"""
|
|
36
|
+
Python operations refused by a Table, each raising ``RefusedOperationError`` with the numdaplot way of doing it.
|
|
37
|
+
|
|
38
|
+
``==``, ``!=``, ``<``, ``<=``, ``>``, ``>=``, brackets, ``for``, ``in``, ``len`` and ``bool`` are refused.
|
|
39
|
+
|
|
40
|
+
.. versionadded:: 0.1.0
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
def __eq__(self, other: object) -> NoReturn:
|
|
44
|
+
"""
|
|
45
|
+
Refuse ``table == other``; use ``is_equal``.
|
|
46
|
+
|
|
47
|
+
.. versionadded:: 0.1.0
|
|
48
|
+
|
|
49
|
+
Parameters
|
|
50
|
+
----------
|
|
51
|
+
other
|
|
52
|
+
Any value.
|
|
53
|
+
|
|
54
|
+
Raises
|
|
55
|
+
------
|
|
56
|
+
RefusedOperationError
|
|
57
|
+
Always.
|
|
58
|
+
"""
|
|
59
|
+
refuse_table_comparison(EQUAL_SYMBOL, EQUALITY_ALTERNATIVE)
|
|
60
|
+
|
|
61
|
+
def __ne__(self, other: object) -> NoReturn:
|
|
62
|
+
"""
|
|
63
|
+
Refuse ``table != other``; use ``is_equal``.
|
|
64
|
+
|
|
65
|
+
.. versionadded:: 0.1.0
|
|
66
|
+
|
|
67
|
+
Parameters
|
|
68
|
+
----------
|
|
69
|
+
other
|
|
70
|
+
Any value.
|
|
71
|
+
|
|
72
|
+
Raises
|
|
73
|
+
------
|
|
74
|
+
RefusedOperationError
|
|
75
|
+
Always.
|
|
76
|
+
"""
|
|
77
|
+
refuse_table_comparison(NOT_EQUAL_SYMBOL, EQUALITY_ALTERNATIVE)
|
|
78
|
+
|
|
79
|
+
def __lt__(self, other: object) -> NoReturn:
|
|
80
|
+
"""
|
|
81
|
+
Refuse ``table < other``; use ``filter``.
|
|
82
|
+
|
|
83
|
+
.. versionadded:: 0.1.0
|
|
84
|
+
|
|
85
|
+
Parameters
|
|
86
|
+
----------
|
|
87
|
+
other
|
|
88
|
+
Any value.
|
|
89
|
+
|
|
90
|
+
Raises
|
|
91
|
+
------
|
|
92
|
+
RefusedOperationError
|
|
93
|
+
Always.
|
|
94
|
+
|
|
95
|
+
Examples
|
|
96
|
+
--------
|
|
97
|
+
>>> import numdaplot as ndp
|
|
98
|
+
>>> table = ndp.Table.from_arrays({"price": ndp.Array.from_list([1.5])})
|
|
99
|
+
>>> try:
|
|
100
|
+
... table < 2
|
|
101
|
+
... except ndp.RefusedOperationError as error:
|
|
102
|
+
... print(error)
|
|
103
|
+
Comparing a Table with < is not available, use filter with a rule such as ndp.Greater instead.
|
|
104
|
+
"""
|
|
105
|
+
refuse_table_comparison(LESS_SYMBOL, ORDER_ALTERNATIVE)
|
|
106
|
+
|
|
107
|
+
def __le__(self, other: object) -> NoReturn:
|
|
108
|
+
"""
|
|
109
|
+
Refuse ``table <= other``; use ``filter``.
|
|
110
|
+
|
|
111
|
+
.. versionadded:: 0.1.0
|
|
112
|
+
|
|
113
|
+
Parameters
|
|
114
|
+
----------
|
|
115
|
+
other
|
|
116
|
+
Any value.
|
|
117
|
+
|
|
118
|
+
Raises
|
|
119
|
+
------
|
|
120
|
+
RefusedOperationError
|
|
121
|
+
Always.
|
|
122
|
+
"""
|
|
123
|
+
refuse_table_comparison(LESS_OR_EQUAL_SYMBOL, ORDER_ALTERNATIVE)
|
|
124
|
+
|
|
125
|
+
def __gt__(self, other: object) -> NoReturn:
|
|
126
|
+
"""
|
|
127
|
+
Refuse ``table > other``; use ``filter``.
|
|
128
|
+
|
|
129
|
+
.. versionadded:: 0.1.0
|
|
130
|
+
|
|
131
|
+
Parameters
|
|
132
|
+
----------
|
|
133
|
+
other
|
|
134
|
+
Any value.
|
|
135
|
+
|
|
136
|
+
Raises
|
|
137
|
+
------
|
|
138
|
+
RefusedOperationError
|
|
139
|
+
Always.
|
|
140
|
+
"""
|
|
141
|
+
refuse_table_comparison(GREATER_SYMBOL, ORDER_ALTERNATIVE)
|
|
142
|
+
|
|
143
|
+
def __ge__(self, other: object) -> NoReturn:
|
|
144
|
+
"""
|
|
145
|
+
Refuse ``table >= other``; use ``filter``.
|
|
146
|
+
|
|
147
|
+
.. versionadded:: 0.1.0
|
|
148
|
+
|
|
149
|
+
Parameters
|
|
150
|
+
----------
|
|
151
|
+
other
|
|
152
|
+
Any value.
|
|
153
|
+
|
|
154
|
+
Raises
|
|
155
|
+
------
|
|
156
|
+
RefusedOperationError
|
|
157
|
+
Always.
|
|
158
|
+
"""
|
|
159
|
+
refuse_table_comparison(GREATER_OR_EQUAL_SYMBOL, ORDER_ALTERNATIVE)
|
|
160
|
+
|
|
161
|
+
def __getitem__(self, key: object) -> NoReturn:
|
|
162
|
+
"""
|
|
163
|
+
Refuse ``table[...]``; use ``column``, ``take`` or ``filter``.
|
|
164
|
+
|
|
165
|
+
.. versionadded:: 0.1.0
|
|
166
|
+
|
|
167
|
+
Parameters
|
|
168
|
+
----------
|
|
169
|
+
key
|
|
170
|
+
Any value.
|
|
171
|
+
|
|
172
|
+
Raises
|
|
173
|
+
------
|
|
174
|
+
RefusedOperationError
|
|
175
|
+
Always.
|
|
176
|
+
"""
|
|
177
|
+
raise RefusedOperationError(BRACKETS_OPERATION, BRACKETS_ALTERNATIVE)
|
|
178
|
+
|
|
179
|
+
def __setitem__(self, key: object, value: object) -> NoReturn:
|
|
180
|
+
"""
|
|
181
|
+
Refuse ``table[...] = value``; use ``add_column``, which returns a new Table.
|
|
182
|
+
|
|
183
|
+
.. versionadded:: 0.1.0
|
|
184
|
+
|
|
185
|
+
Parameters
|
|
186
|
+
----------
|
|
187
|
+
key
|
|
188
|
+
Any value.
|
|
189
|
+
value
|
|
190
|
+
Any value.
|
|
191
|
+
|
|
192
|
+
Raises
|
|
193
|
+
------
|
|
194
|
+
RefusedOperationError
|
|
195
|
+
Always.
|
|
196
|
+
"""
|
|
197
|
+
raise RefusedOperationError(BRACKETS_OPERATION, BRACKETS_ALTERNATIVE)
|
|
198
|
+
|
|
199
|
+
def __iter__(self) -> Iterator[object]:
|
|
200
|
+
"""
|
|
201
|
+
Refuse ``for row in table``; iterate over the values of a column instead.
|
|
202
|
+
|
|
203
|
+
.. versionadded:: 0.1.0
|
|
204
|
+
|
|
205
|
+
Raises
|
|
206
|
+
------
|
|
207
|
+
RefusedOperationError
|
|
208
|
+
Always.
|
|
209
|
+
|
|
210
|
+
Examples
|
|
211
|
+
--------
|
|
212
|
+
>>> import numdaplot as ndp
|
|
213
|
+
>>> table = ndp.Table.from_arrays({"city": ndp.Array.from_list(["Paris", "Lyon"])})
|
|
214
|
+
>>> for city in table.column("city").to_list():
|
|
215
|
+
... print(city)
|
|
216
|
+
Paris
|
|
217
|
+
Lyon
|
|
218
|
+
"""
|
|
219
|
+
raise RefusedOperationError(ITERATION_OPERATION, ITERATION_ALTERNATIVE)
|
|
220
|
+
|
|
221
|
+
def __contains__(self, value: object) -> NoReturn:
|
|
222
|
+
"""
|
|
223
|
+
Refuse ``value in table``; use ``filter`` with ``ndp.Equal`` or ``ndp.IsIn``, or ``column_names``.
|
|
224
|
+
|
|
225
|
+
.. versionadded:: 0.1.0
|
|
226
|
+
|
|
227
|
+
Parameters
|
|
228
|
+
----------
|
|
229
|
+
value
|
|
230
|
+
Any value.
|
|
231
|
+
|
|
232
|
+
Raises
|
|
233
|
+
------
|
|
234
|
+
RefusedOperationError
|
|
235
|
+
Always.
|
|
236
|
+
"""
|
|
237
|
+
raise RefusedOperationError(MEMBERSHIP_OPERATION, MEMBERSHIP_ALTERNATIVE)
|
|
238
|
+
|
|
239
|
+
def __len__(self) -> NoReturn:
|
|
240
|
+
"""
|
|
241
|
+
Refuse ``len(table)``; read the ``row_count`` attribute instead.
|
|
242
|
+
|
|
243
|
+
.. versionadded:: 0.1.0
|
|
244
|
+
|
|
245
|
+
Raises
|
|
246
|
+
------
|
|
247
|
+
RefusedOperationError
|
|
248
|
+
Always.
|
|
249
|
+
"""
|
|
250
|
+
raise RefusedOperationError(LENGTH_OPERATION, LENGTH_ALTERNATIVE)
|
|
251
|
+
|
|
252
|
+
def __bool__(self) -> NoReturn:
|
|
253
|
+
"""
|
|
254
|
+
Refuse ``if table:`` and ``bool(table)``, whose meaning would be unclear.
|
|
255
|
+
|
|
256
|
+
.. versionadded:: 0.1.0
|
|
257
|
+
|
|
258
|
+
Raises
|
|
259
|
+
------
|
|
260
|
+
RefusedOperationError
|
|
261
|
+
Always.
|
|
262
|
+
"""
|
|
263
|
+
raise RefusedOperationError(TRUTH_OPERATION, TRUTH_ALTERNATIVE)
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
def refuse_table_comparison(symbol: str, alternative: str) -> NoReturn:
|
|
267
|
+
"""
|
|
268
|
+
Raise the error refusing a comparison operator on a Table.
|
|
269
|
+
|
|
270
|
+
.. versionadded:: 0.1.0
|
|
271
|
+
|
|
272
|
+
Parameters
|
|
273
|
+
----------
|
|
274
|
+
symbol
|
|
275
|
+
The comparison operator, such as ``"<"``.
|
|
276
|
+
alternative
|
|
277
|
+
What to use instead.
|
|
278
|
+
|
|
279
|
+
Raises
|
|
280
|
+
------
|
|
281
|
+
RefusedOperationError
|
|
282
|
+
Always.
|
|
283
|
+
|
|
284
|
+
Examples
|
|
285
|
+
--------
|
|
286
|
+
>>> import numdaplot as ndp
|
|
287
|
+
>>> from numdaplot.tables.table_refusals import refuse_table_comparison
|
|
288
|
+
>>> try:
|
|
289
|
+
... refuse_table_comparison("==", "is_equal")
|
|
290
|
+
... except ndp.RefusedOperationError as error:
|
|
291
|
+
... print(error)
|
|
292
|
+
Comparing a Table with == is not available, use is_equal instead.
|
|
293
|
+
"""
|
|
294
|
+
operation = COMPARISON_OPERATION.format(symbol=symbol)
|
|
295
|
+
raise RefusedOperationError(operation, alternative)
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Selection of the rows and columns of a Table, by conditions and by position, and check of its values.
|
|
3
|
+
|
|
4
|
+
.. versionadded:: 0.1.0
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Self
|
|
8
|
+
|
|
9
|
+
from numdaplot.positions.region import Region
|
|
10
|
+
from numdaplot.rules.rule import Rule
|
|
11
|
+
from numdaplot.settings.argument_types import checked_arguments
|
|
12
|
+
from numdaplot.tables.filtering.checked_frame import check_frame
|
|
13
|
+
from numdaplot.tables.filtering.filter import Filter
|
|
14
|
+
from numdaplot.tables.filtering.row_mask import build_filter_mask
|
|
15
|
+
from numdaplot.tables.frames.region_positions import take_region
|
|
16
|
+
from numdaplot.tables.table_data import TableData
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class TableSelection(TableData):
|
|
20
|
+
"""
|
|
21
|
+
Selection of rows with ``filter``, of a region with ``take``, and check of every value with ``check``.
|
|
22
|
+
|
|
23
|
+
.. versionadded:: 0.1.0
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
@checked_arguments
|
|
27
|
+
def check(self, rule: Rule) -> Self:
|
|
28
|
+
"""
|
|
29
|
+
Return which values satisfy a rule, in every column.
|
|
30
|
+
|
|
31
|
+
To check some columns only, choose them first with ``choose_columns``.
|
|
32
|
+
|
|
33
|
+
.. versionadded:: 0.1.0
|
|
34
|
+
|
|
35
|
+
Parameters
|
|
36
|
+
----------
|
|
37
|
+
rule
|
|
38
|
+
A ``Rule``, such as ``ndp.Greater(10)`` or ``ndp.IsIn(["Paris"])``: see ``Rule`` for every rule.
|
|
39
|
+
A missing value only satisfies ``IsMissing``.
|
|
40
|
+
|
|
41
|
+
Returns
|
|
42
|
+
-------
|
|
43
|
+
Self
|
|
44
|
+
A new Table with the same columns and rows, holding True where the value satisfies the rule.
|
|
45
|
+
Every column is of type ``BOOL``.
|
|
46
|
+
|
|
47
|
+
Raises
|
|
48
|
+
------
|
|
49
|
+
InvalidTypeError
|
|
50
|
+
When an argument is not of the type its annotation names.
|
|
51
|
+
IncompatibleTypesError
|
|
52
|
+
When the rule does not apply to the type of one of the columns.
|
|
53
|
+
|
|
54
|
+
Examples
|
|
55
|
+
--------
|
|
56
|
+
>>> import numdaplot as ndp
|
|
57
|
+
>>> prices = ndp.Array.from_list([120.0, None, 150.0])
|
|
58
|
+
>>> stocks = ndp.Array.from_list([3.0, 5.0, None])
|
|
59
|
+
>>> table = ndp.Table.from_arrays({"price": prices, "stock": stocks})
|
|
60
|
+
>>> table.check(ndp.IsMissing())
|
|
61
|
+
price stock
|
|
62
|
+
BOOL BOOL
|
|
63
|
+
0 False False
|
|
64
|
+
1 True False
|
|
65
|
+
2 False True
|
|
66
|
+
"""
|
|
67
|
+
checked_frame = check_frame(self._frame, rule)
|
|
68
|
+
checked_table = self._wrap(checked_frame)
|
|
69
|
+
|
|
70
|
+
return checked_table
|
|
71
|
+
|
|
72
|
+
@checked_arguments
|
|
73
|
+
def filter(self, row_filter: Filter) -> Self:
|
|
74
|
+
"""
|
|
75
|
+
Return the rows satisfying a filter.
|
|
76
|
+
|
|
77
|
+
.. versionadded:: 0.1.0
|
|
78
|
+
|
|
79
|
+
Parameters
|
|
80
|
+
----------
|
|
81
|
+
row_filter
|
|
82
|
+
The conditions and how they combine. A missing value only satisfies ``IsMissing``.
|
|
83
|
+
|
|
84
|
+
Returns
|
|
85
|
+
-------
|
|
86
|
+
Self
|
|
87
|
+
A new Table with the kept rows, in their order, numbered from 0.
|
|
88
|
+
|
|
89
|
+
Raises
|
|
90
|
+
------
|
|
91
|
+
InvalidTypeError
|
|
92
|
+
When an argument is not of the type its annotation names.
|
|
93
|
+
ColumnNotFoundError
|
|
94
|
+
When a condition names a column the Table does not have.
|
|
95
|
+
IncompatibleTypesError
|
|
96
|
+
When a rule does not apply to the type of one of its columns.
|
|
97
|
+
|
|
98
|
+
Examples
|
|
99
|
+
--------
|
|
100
|
+
>>> import numdaplot as ndp
|
|
101
|
+
>>> cities = ndp.Array.from_list(["Paris", "Lyon", "Pau"])
|
|
102
|
+
>>> prices = ndp.Array.from_list([120.0, 80.0, 150.0])
|
|
103
|
+
>>> table = ndp.Table.from_arrays({"city": cities, "price": prices})
|
|
104
|
+
>>> expensive = ndp.Condition(rule=ndp.Greater(100), columns=["price"])
|
|
105
|
+
>>> table.filter(ndp.Filter(conditions=[expensive]))
|
|
106
|
+
city price
|
|
107
|
+
TEXT FLOAT64
|
|
108
|
+
0 Paris 120.0
|
|
109
|
+
1 Pau 150.0
|
|
110
|
+
"""
|
|
111
|
+
mask = build_filter_mask(self._frame, row_filter)
|
|
112
|
+
kept_frame = self._frame[mask]
|
|
113
|
+
numbered_frame = kept_frame.reset_index(drop=True)
|
|
114
|
+
filtered_table = self._wrap(numbered_frame)
|
|
115
|
+
|
|
116
|
+
return filtered_table
|
|
117
|
+
|
|
118
|
+
@checked_arguments
|
|
119
|
+
def take(self, region: Region) -> Self:
|
|
120
|
+
"""
|
|
121
|
+
Return the rows and the columns of a region.
|
|
122
|
+
|
|
123
|
+
A row chosen with ``Index`` gives a Table of one row. Use ``to_value`` to read a single value.
|
|
124
|
+
|
|
125
|
+
.. versionadded:: 0.1.0
|
|
126
|
+
|
|
127
|
+
Parameters
|
|
128
|
+
----------
|
|
129
|
+
region
|
|
130
|
+
The rows and the columns, every one of a dimension when omitted. Columns are positions or names;
|
|
131
|
+
negative positions count from the end.
|
|
132
|
+
|
|
133
|
+
Returns
|
|
134
|
+
-------
|
|
135
|
+
Self
|
|
136
|
+
A new Table, rows numbered from 0, columns in the order of the region.
|
|
137
|
+
|
|
138
|
+
Raises
|
|
139
|
+
------
|
|
140
|
+
InvalidTypeError
|
|
141
|
+
When an argument is not of the type its annotation names.
|
|
142
|
+
InvalidPositionError
|
|
143
|
+
When a position is not a whole number inside its dimension.
|
|
144
|
+
ColumnNotFoundError
|
|
145
|
+
When a column name matches no column.
|
|
146
|
+
DuplicateColumnError
|
|
147
|
+
When a column name appears twice in the region.
|
|
148
|
+
|
|
149
|
+
Examples
|
|
150
|
+
--------
|
|
151
|
+
>>> import numdaplot as ndp
|
|
152
|
+
>>> prices = ndp.Array.from_list([120.0, 80.0, 150.0])
|
|
153
|
+
>>> table = ndp.Table.from_arrays({"price": prices})
|
|
154
|
+
>>> table.take(ndp.Region(rows=ndp.Range(start=1, stop=2), columns=["price"]))
|
|
155
|
+
price
|
|
156
|
+
FLOAT64
|
|
157
|
+
0 80.0
|
|
158
|
+
1 150.0
|
|
159
|
+
"""
|
|
160
|
+
region_frame = take_region(self._frame, region)
|
|
161
|
+
region_table = self._wrap(region_frame)
|
|
162
|
+
|
|
163
|
+
return region_table
|