diff --git a/_modules/arkouda/groupbyclass.html b/_modules/arkouda/groupbyclass.html index 1075b16a1f..80e641b01b 100644 --- a/_modules/arkouda/groupbyclass.html +++ b/_modules/arkouda/groupbyclass.html @@ -2226,6 +2226,10 @@

Source code for arkouda.groupbyclass

         """
         if values.size != self.segments.size:
             raise ValueError("Must have one value per segment")
+        is_str = isinstance(values, Strings)
+        if is_str:
+            str_vals = values
+            values = arange(str_vals.size)
         cmd = "broadcast"
         repMsg = cast(
             str,
@@ -2235,16 +2239,13 @@ 

Source code for arkouda.groupbyclass

                     "permName": self.permutation.name,
                     "segName": self.segments.name,
                     "valName": values.name,
-                    "objType": values.objType,
                     "permute": permute,
                     "size": self.length,
                 },
             ),
         )
-        if values.objType == Strings.objType:
-            return Strings.from_return_msg(repMsg)
-        else:
-            return create_pdarray(repMsg)
+ broadcasted = create_pdarray(repMsg) + return str_vals[broadcasted] if is_str else broadcasted
@@ -2626,6 +2627,12 @@

Source code for arkouda.groupbyclass

         size = cast(Union[int, np.int64, np.uint64], permutation.size)
     if size < 1:
         raise ValueError("result size must be greater than zero")
+
+    is_str = isinstance(values, Strings)
+    if is_str:
+        str_vals = values
+        values = arange(str_vals.size)
+
     cmd = "broadcast"
     repMsg = cast(
         str,
@@ -2635,16 +2642,13 @@ 

Source code for arkouda.groupbyclass

                 "permName": pname,
                 "segName": segments.name,
                 "valName": values.name,
-                "objType": values.objType,
                 "permute": permute,
                 "size": size,
             },
         ),
     )
-    if values.objType == Strings.objType:
-        return Strings.from_return_msg(repMsg)
-    else:
-        return create_pdarray(repMsg)
+ broadcasted = create_pdarray(repMsg) + return str_vals[broadcasted] if is_str else broadcasted