IArrayLike ========== .. cpp:class:: pandas::IArrayLike pandas C++ class. Example ------- .. code-block:: cpp #include using namespace pandas; // Use IArrayLike IArrayLike obj; // ... operations ... I/O --- .. list-table:: :widths: 40 20 15 25 :header-rows: 1 * - Signature - Return Type - Location - Example * - ``virtual std::shared_ptr to_series() const = 0`` - virtual std::shared_ptr - pd_callable_handle.h:111 - :ref:`View ` Other Methods ------------- .. list-table:: :widths: 40 20 15 25 :header-rows: 1 * - Signature - Return Type - Location - Example * - ``virtual std::string dtype_name() const = 0`` - virtual std::string - pd_callable_handle.h:105 - :ref:`View ` * - ``virtual std::size_t size() const = 0`` - virtual std::size_t - pd_callable_handle.h:106 - :ref:`View ` Code Examples ------------- The following examples are extracted from the test suite. .. _example-iarraylike-to_series-0: .. dropdown:: to_series (pd_test_3_all.cpp:5788) :class-title: example-dropdown .. code-block:: cpp :linenos: :lineno-start: 5778 :emphasize-lines: 11 throw std::runtime_error("to_frame use_index should be false when index=false"); } if (frame3.column_name != "0") { throw std::runtime_error("to_frame column_name should be '0' when no name"); } std::cout << " -> tests passed" << std::endl; } void pd_test_3_all_period_index_to_series() { std::cout << "========= PeriodIndex.to_series() ====================="; pandas::PeriodIndex idx = make_period_index({1, 2, 3}, "M").rename("periods"); // Test to_series() with default parameters pandas::PeriodIndex::SeriesData series = idx.to_series(); // values should have same size if (series.values.size() != 3) { throw std::runtime_error("to_series values size should be 3"); } .. _example-iarraylike-dtype_name-1: .. dropdown:: dtype_name (pd_test_1_all.cpp:10104) :class-title: example-dropdown .. code-block:: cpp :linenos: :lineno-start: 10094 :emphasize-lines: 11 } void pd_test_extension_index_array_constructor() { std::cout << "========= array constructor ========================="; pandas::CategoricalArray arr({"apple", "banana", "apple", "cherry"}); pandas::CategoricalIndex idx(arr, "fruits"); bool passed = (idx.size() == 4 && !idx.empty() && idx.name().has_value() && *idx.name() == "fruits" && idx.dtype_name() == "category"); if (!passed) { std::cout << " [FAIL] : in pd_test_extension_index_array_constructor() : array constructor check failed" << std::endl; throw std::runtime_error("pd_test_extension_index_array_constructor failed"); } std::cout << " -> tests passed" << std::endl; } void pd_test_extension_index_copy_constructor() { std::cout << "========= copy constructor ========================="; .. _example-iarraylike-size-2: .. dropdown:: size (pd_test_1_all.cpp:22) :class-title: example-dropdown .. code-block:: cpp :linenos: :lineno-start: 12 :emphasize-lines: 11 #include "../pandas/pd_boolean_array.h" namespace dataframe_tests { namespace dataframe_tests_boolean_array { void pd_test_boolean_array_constructors() { std::cout << "========= BooleanArray: constructors ======================= "; // Default constructor pandas::BooleanArray arr1; if (arr1.size() != 0) { std::cout << " [FAIL] : in pd_test_boolean_array_constructors() : default constructor size != 0" << std::endl; throw std::runtime_error("pd_test_boolean_array_constructors failed: default constructor size != 0"); } // Initializer list constructor pandas::BooleanArray arr2({ std::optional(true), std::optional(false), std::nullopt, std::optional(true)