in graspologic/plot/plot_matrix.py [0:0]
def _item_to_df(item, name, length):
if item is None:
return None, []
elif (name == "group_order") and (item == "size"):
return None, ["size"]
if isinstance(item, pd.Series):
_check_length(item, name, length)
item_meta = item.to_frame(name=f"{name}_0")
elif isinstance(item, list):
if len(item) == length: # assuming elements of list are metadata
item = [item]
for elem in item:
_check_length(elem, name, length)
item_meta = pd.DataFrame({f"{name}_{i}": elem for i, elem in enumerate(item)})
elif isinstance(item, np.ndarray):
if item.ndim > 2:
raise ValueError(f"Numpy array passed as {name} must be 1 or 2d.")
_check_length(item, name, length)
if item.ndim < 2:
item = np.atleast_2d(item).T
item_meta = pd.DataFrame(
data=item, columns=[f"{name}_{i}" for i in range(item.shape[1])]
)
else:
raise ValueError(f"{name} must be a pd.Series, np.array, or list.")
item = list(item_meta.columns.values)
return item_meta, item