GenericScalar#

class pandas::GenericScalar#

pandas C++ class.

Example#

#include <pandas/pandas.h>
using namespace pandas;

// Use GenericScalar
GenericScalar obj;
// ... operations ...

Construction#

Signature

Return Type

Location

Example

static GenericScalar from_bool(bool v)

static GenericScalar

pd_generic_array_formatter.h:63

static GenericScalar from_string(std::string s)

static GenericScalar

pd_generic_array_formatter.h:66

View

Other Methods#

Signature

Return Type

Location

Example

static GenericScalar na()

static GenericScalar

pd_generic_array_formatter.h:60

View

static GenericScalar nan()

static GenericScalar

pd_generic_array_formatter.h:62

View

static GenericScalar nat()

static GenericScalar

pd_generic_array_formatter.h:61

View

static GenericScalar none()

static GenericScalar

pd_generic_array_formatter.h:59

View

Code Examples#

The following examples are extracted from the test suite.

from_string (pd_test_3_all.cpp:10837)
10827    const auto& s1 = df.column<int64_t>("A");
10828    const auto& s2 = df.col<int64_t>("A");
10829    if (s1.size() != s2.size() || s1[0] != s2[0]) {
10830        std::cout << "  [FAIL] : in pd_test_3_all_column_alias() : mismatch" << std::endl;
10831        throw std::runtime_error("pd_test_3_all_column_alias failed");
10832    }
10833    std::cout << " -> tests passed" << std::endl;
10834}
10835
10836void pd_test_3_all_timedelta_from_string() {
10837    std::cout << "========= Timedelta::from_string() ======================";
10838    auto td1 = pandas::Timedelta::from_string("1 days");
10839    pandas::Timedelta td2("1 days");
10840    if (td1.value() != td2.value()) {
10841        std::cout << "  [FAIL] : in pd_test_3_all_timedelta_from_string() : mismatch" << std::endl;
10842        throw std::runtime_error("pd_test_3_all_timedelta_from_string failed");
10843    }
10844    std::cout << " -> tests passed" << std::endl;
10845}
10846
10847void pd_test_3_all_replace_int() {
na (pd_test_1_all.cpp:84)
74    void pd_test_boolean_array_kleene_and() {
75        std::cout << "========= BooleanArray: Kleene AND ======================= ";
76
77        // Kleene AND truth table:
78        // T & T = T, T & F = F, T & NA = NA
79        // F & T = F, F & F = F, F & NA = F (False dominates)
80        // NA & T = NA, NA & F = F, NA & NA = NA
81
82        pandas::BooleanArray t({std::optional<bool>(true)});
83        pandas::BooleanArray f({std::optional<bool>(false)});
84        pandas::BooleanArray na({std::nullopt});
85
86        // T & T = T
87        auto tt = (t & t);
88        if (!tt[0].has_value() || !tt[0].value()) {
89            std::cout << "  [FAIL] : in pd_test_boolean_array_kleene_and() : T & T should be T" << std::endl;
90            throw std::runtime_error("pd_test_boolean_array_kleene_and failed: T & T");
91        }
92
93        // T & F = F
94        auto tf = (t & f);
nan (pd_test_1_all.cpp:1556)
1546        std::cout << " -> tests passed" << std::endl;
1547    }
1548
1549    void pd_test_floating_array_nan_conversion() {
1550        std::cout << "========= FloatingArray: NaN to NA conversion ======================= ";
1551
1552        // NaN values should be automatically converted to NA
1553        pandas::FloatingArray<double> arr({
1554            std::optional<double>(1.0),
1555            std::optional<double>(std::nan("")),  // NaN
1556            std::optional<double>(3.0)
1557        });
1558
1559        if (!arr.is_na(1)) {
1560            std::cout << "  [FAIL] : in pd_test_floating_array_nan_conversion() : NaN should be converted to NA" << std::endl;
1561            throw std::runtime_error("pd_test_floating_array_nan_conversion failed: NaN should be NA");
1562        }
1563
1564        if (arr.is_na(0) || arr.is_na(2)) {
1565            std::cout << "  [FAIL] : in pd_test_floating_array_nan_conversion() : non-NaN should not be NA" << std::endl;
nat (pd_test_5_all.cpp:97717)
97707    std::string result_override;
97708    std::string variant_label;
97709};
97710
97711static pandas::FillValue fv_none()         { return pandas::FillValue::none(); }
97712
97713static pandas::FillValue fv_nan()          { return pandas::FillValue::nan(); }
97714
97715static pandas::FillValue fv_na()           { return pandas::FillValue::na(); }
97716
97717static pandas::FillValue fv_nat()          { return pandas::FillValue::nat(); }
97718
97719static pandas::FillValue fv_bool_false()   { return pandas::FillValue::of_bool(false); }
97720
97721static pandas::FillValue fv_num_zero()     { return pandas::FillValue::of_numeric(0.0); }
97722
97723static pandas::FillValue fv_string_x()     { return pandas::FillValue::of_string("x"); }
97724
97725static Probe probe_result(pandas::Result& r) {
97726    Probe p;
97727    std::visit([&](auto& alt) {
none (pd_test_5_all.cpp:90413)
90403                                    pandas::FillValue::of_bool(true));
90404        (void)r;
90405    }, local_fail);
90406}
90407
90408static void f_20_847312_dispatch_complex_none(int& local_fail) {
90409    std::cout << "-- f_20_847312_dispatch_complex_none\n";
90410    expect_value_error_duplicate("c12_dispatch_complex_none", [] {
90411        auto s = make_series<cplx>({{1, 2}, {3, 4}, {5, 6}}, {"c1", "c1", "c2"});
90412        auto r = s.reindex_dispatch({"c1", "c2", "c3"}, "",
90413                                    pandas::FillValue::none());
90414        (void)r;
90415    }, local_fail);
90416}
90417
90418static void f_20_847313_df_dup_rows_axis0(int& local_fail) {
90419    std::cout << "-- f_20_847313_df_dup_rows_axis0\n";
90420    expect_value_error_duplicate("c13_df_dup_rows_axis0", [] {
90421        std::vector<pandas::Series<std::int64_t>> cols;
90422        cols.emplace_back(std::vector<std::int64_t>{10, 20, 30});
90423        cols.emplace_back(std::vector<std::int64_t>{40, 50, 60});