Source code for awkward_pandas.lib

from __future__ import annotations

import awkward as ak
import numpy as np
import pandas as pd

from awkward_pandas.io import from_awkward


[docs] def merge(dataframe: pd.DataFrame, name: str | None = None) -> pd.Series: """Create a single awkward series by merging the columns of a dataframe. Parameters ---------- dataframe: pd.DataFrame Containing columns of simple numpy type, object type (e.g., srtings, lists or dicts) or existing awkward columns. name: str or None Name of the output series. Returns ------- pd.Series Resuling Series with dtype AwkwardDtype """ out = {} for c in dataframe.columns: if dataframe[c].dtype == "awkward": out[c] = dataframe[c].values._data elif dataframe[c].dtype == "string[pyarrow]": out[c] = ak.from_arrow(dataframe[c].values._data) elif dataframe[c].dtype == np.dtype("O"): out[c] = ak.from_iter(dataframe[c]) else: out[c] = dataframe[c].values return from_awkward(ak.Array(out), name=name)