Beispiel #1
0
 def from_struct_column(self, closed="right"):
     return IntervalColumn(
         size=self.size,
         dtype=IntervalDtype(self.dtype.fields["left"], closed),
         mask=self.base_mask,
         offset=self.offset,
         null_count=self.null_count,
         children=self.base_children,
         closed=closed,
     )
Beispiel #2
0
 def from_struct_column(self, closed="right"):
     first_field_name = list(self.dtype.fields.keys())[0]
     return IntervalColumn(
         size=self.size,
         dtype=IntervalDtype(self.dtype.fields[first_field_name], closed),
         mask=self.base_mask,
         offset=self.offset,
         null_count=self.null_count,
         children=self.base_children,
         closed=closed,
     )
Beispiel #3
0
 def copy(self, deep=True):
     closed = self.closed
     struct_copy = super().copy(deep=deep)
     return IntervalColumn(
         size=struct_copy.size,
         dtype=IntervalDtype(struct_copy.dtype.fields["left"], closed),
         mask=struct_copy.base_mask,
         offset=struct_copy.offset,
         null_count=struct_copy.null_count,
         children=struct_copy.base_children,
         closed=closed,
     )
Beispiel #4
0
 def as_interval_column(self, dtype, **kwargs):
     if is_interval_dtype(dtype):
         # a user can directly input the string `interval` as the dtype
         # when creating an interval series or interval dataframe
         if dtype == "interval":
             dtype = IntervalDtype(self.dtype.fields["left"], self.closed)
         return IntervalColumn(
             size=self.size,
             dtype=dtype,
             mask=self.mask,
             offset=self.offset,
             null_count=self.null_count,
             children=self.children,
             closed=dtype.closed,
         )
     else:
         raise ValueError("dtype must be IntervalDtype")
Beispiel #5
0
    def from_arrow(self, data):
        new_col = super().from_arrow(data.storage)
        size = len(data)
        dtype = IntervalDtype.from_arrow(data.type)
        mask = data.buffers()[0]
        if mask is not None:
            mask = cudf.utils.utils.pa_mask_buffer_to_mask(mask, len(data))

        offset = data.offset
        null_count = data.null_count
        children = new_col.children
        closed = dtype.closed

        return IntervalColumn(
            size=size,
            dtype=dtype,
            mask=mask,
            offset=offset,
            null_count=null_count,
            children=children,
            closed=closed,
        )
Beispiel #6
0
def test_interval_dtype_pyarrow_round_trip(fields, closed):
    pa_array = pd.core.arrays._arrow_utils.ArrowIntervalType(fields, closed)
    expect = pa_array
    got = IntervalDtype.from_arrow(expect).to_arrow()
    assert expect.equals(got)