FuncArg#
-
class pandas::FuncArg#
pandas C++ class.
Example#
#include <pandas/pandas.h>
using namespace pandas;
// Use FuncArg
FuncArg obj;
// ... operations ...
Constructors#
Signature |
Location |
Example |
|---|---|---|
|
pd_func_dispatch.h:163 |
|
|
pd_func_dispatch.h:164 |
|
|
pd_func_dispatch.h:166 |
Construction#
Signature |
Return Type |
Location |
Example |
|---|---|---|---|
|
static FuncArg |
pd_func_dispatch.h:214 |
|
|
static FuncArg |
pd_func_dispatch.h:182 |
|
|
static FuncArg |
pd_func_dispatch.h:188 |
|
|
static FuncArg |
pd_func_dispatch.h:194 |
|
|
static FuncArg |
pd_func_dispatch.h:208 |
|
|
static FuncArg |
pd_func_dispatch.h:200 |
|
|
FuncArg |
pd_func_dispatch.h:207 |
|
|
static FuncArg |
pd_func_dispatch.h:176 |
|
|
static FuncArg |
pd_func_dispatch.h:170 |
Other Methods#
Signature |
Return Type |
Location |
Example |
|---|---|---|---|
|
static FuncArg |
pd_func_dispatch.h:220 |
Code Examples#
The following examples are extracted from the test suite.
from_callable_handle (pd_test_5_all.cpp:53781)
53771 << " actual dtype: [" << dts[0] << "]\n";
53772 }
53773}
53774
53775static void f_series_apply_dispatch_502719_case_H1_dispatch_callable_square_int(int& local_fail) {
53776 std::cout << "-- case_H1_dispatch_callable_square_int\n";
53777 pandas::Series<std::int64_t> s({2, 3, 4}, "v");
53778 auto h = dispatch_test_helpers::make_stub_callable(
53779 dispatch_test_helpers::test_cell_int_cb([](double x) { return static_cast<std::int64_t>(x * x); }),
53780 "square");
53781 pandas::Result r = s.apply_dispatch(pandas::FuncArg::from_callable_handle(h));
53782 bool got = std::holds_alternative<std::unique_ptr<pandas::Series<numpy::float64>>>(r.value);
53783 pandas_tests::check(got, "case_H1.is_series_float64", local_fail);
53784 if (!got) return;
53785 auto& sp = std::get<std::unique_ptr<pandas::Series<numpy::float64>>>(r.value);
53786 bool ok = (sp->size() == 3) && (*sp)[0] == 4.0 && (*sp)[1] == 9.0 && (*sp)[2] == 16.0;
53787 pandas_tests::check(ok, "case_H1.values_squared", local_fail);
53788}
53789
53790static void f_series_apply_dispatch_502719_case_H2_dispatch_callable_half_float(int& local_fail) {
53791 std::cout << "-- case_H2_dispatch_callable_half_float\n";
from_dict_spec (pd_test_5_all.cpp:53824)
53814 pandas_tests::check(ok, "case_H3.value_min_1", local_fail);
53815}
53816
53817static void f_series_apply_dispatch_502719_case_H4_funcarg_dict_spec_kind(int& local_fail) {
53818 std::cout << "-- case_H4_funcarg_dict_spec_kind\n";
53819 std::map<std::string, std::vector<pandas::FuncSpec>> dict_specs;
53820 pandas::FuncSpec sum_fs;
53821 sum_fs.kind = pandas::FuncSpec::Kind::StringName;
53822 sum_fs.name = "sum";
53823 dict_specs["v"].push_back(std::move(sum_fs));
53824 auto fa = pandas::FuncArg::from_dict_spec(std::move(dict_specs));
53825 pandas_tests::check(fa.kind == pandas::FuncArgKind::DictSpec, "case_H4.dict_spec_kind", local_fail);
53826 pandas_tests::check(fa.dict_specs.size() == 1, "case_H4.dict_specs_size_1", local_fail);
53827 pandas_tests::check(fa.dict_specs.at("v").size() == 1, "case_H4.dict_v_size_1", local_fail);
53828}
53829
53830static void f_series_apply_dispatch_502719_case_H5_dispatcher_unknown_throws(int& local_fail) {
53831 std::cout << "-- case_H5_dispatcher_unknown_throws\n";
53832 pandas::FuncDispatcher disp;
53833 pandas::FuncArg fa;
53834 fa.kind = pandas::FuncArgKind::Unknown;
from_named_agg_list (pd_test_5_all.cpp:110979)
110969 pandas_tests::check(dfp->nrows() == 2, "case_H3.nrows_2", local_fail);
110970}
110971
110972static void f_groupby_agg_dispatch_a91f4c_case_H4_funcarg_named_agg_kind(int& local_fail) {
110973 std::cout << "-- case_H4_funcarg_named_agg_kind\n";
110974 pandas::FuncDispatchNamedAggSpec spec;
110975 spec.out_name = "v_total";
110976 spec.in_col = "v";
110977 spec.fn.kind = pandas::FuncSpec::Kind::StringName;
110978 spec.fn.name = "sum";
110979 auto fa = pandas::FuncArg::from_named_agg_list({std::move(spec)});
110980 pandas_tests::check(fa.kind == pandas::FuncArgKind::NamedAggList, "case_H4.kind", local_fail);
110981 pandas_tests::check(fa.named_aggs.size() == 1, "case_H4.size_1", local_fail);
110982 pandas_tests::check(fa.named_aggs[0].out_name == "v_total", "case_H4.out_name", local_fail);
110983 pandas_tests::check(fa.named_aggs[0].in_col == "v", "case_H4.in_col", local_fail);
110984}
110985
110986static void f_groupby_agg_dispatch_a91f4c_case_H5_dfgb_agg_funcarg_named(int& local_fail) {
110987 std::cout << "-- case_H5_dfgb_agg_funcarg_named\n";
110988 pandas::DataFrame df_in = make_simple_strkey_float_df();
110989 auto gb = df_in.groupby("k");
from_string_list (pd_test_5_all.cpp:110964)
110954 pandas_tests::check(got, "case_H2.is_dataframe", local_fail);
110955 if (!got) return;
110956 auto& dfp = std::get<std::unique_ptr<pandas::DataFrame>>(r.value);
110957 pandas_tests::check(dfp->nrows() == 2, "case_H2.nrows_2", local_fail);
110958}
110959
110960static void f_groupby_agg_dispatch_a91f4c_case_H3_dfgb_agg_funcarg_string_list(int& local_fail) {
110961 std::cout << "-- case_H3_dfgb_agg_funcarg_string_list\n";
110962 pandas::DataFrame df_in = make_simple_strkey_float_df();
110963 auto gb = df_in.groupby("k");
110964 pandas::Result r = gb.agg(pandas::FuncArg::from_string_list({"sum", "mean"}));
110965 bool got = std::holds_alternative<std::unique_ptr<pandas::DataFrame>>(r.value);
110966 pandas_tests::check(got, "case_H3.is_dataframe", local_fail);
110967 if (!got) return;
110968 auto& dfp = std::get<std::unique_ptr<pandas::DataFrame>>(r.value);
110969 pandas_tests::check(dfp->nrows() == 2, "case_H3.nrows_2", local_fail);
110970}
110971
110972static void f_groupby_agg_dispatch_a91f4c_case_H4_funcarg_named_agg_kind(int& local_fail) {
110973 std::cout << "-- case_H4_funcarg_named_agg_kind\n";
110974 pandas::FuncDispatchNamedAggSpec spec;
from_string_name (pd_test_5_all.cpp:53808)
53798 pandas_tests::check(got, "case_H2.is_series_float64", local_fail);
53799 if (!got) return;
53800 auto& sp = std::get<std::unique_ptr<pandas::Series<numpy::float64>>>(r.value);
53801 bool ok = (sp->size() == 3) && (*sp)[0] == 2.0 && (*sp)[1] == 4.0 && (*sp)[2] == 8.0;
53802 pandas_tests::check(ok, "case_H2.values_halved", local_fail);
53803}
53804
53805static void f_series_apply_dispatch_502719_case_H3_dispatch_string_name_min(int& local_fail) {
53806 std::cout << "-- case_H3_dispatch_string_name_min\n";
53807 pandas::Series<numpy::float64> s({3.0, 1.0, 5.0}, "v");
53808 pandas::Result r = s.apply_dispatch(pandas::FuncArg::from_string_name("min"));
53809 bool got = std::holds_alternative<std::unique_ptr<pandas::Series<numpy::float64>>>(r.value);
53810 pandas_tests::check(got, "case_H3.is_series_float64", local_fail);
53811 if (!got) return;
53812 auto& sp = std::get<std::unique_ptr<pandas::Series<numpy::float64>>>(r.value);
53813 bool ok = (sp->size() == 1) && (*sp)[0] == 1.0;
53814 pandas_tests::check(ok, "case_H3.value_min_1", local_fail);
53815}
53816
53817static void f_series_apply_dispatch_502719_case_H4_funcarg_dict_spec_kind(int& local_fail) {
53818 std::cout << "-- case_H4_funcarg_dict_spec_kind\n";
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});