From your code example, it looks like you’re getting the flag values for each run by way of the run label. Are you wanting runs for the data frame? As you’re showing there, the label is in the data frame as the ‘label’ column.
If you’re looking for flags, there are a few ways that occur to me…
Use runs.guild_flags(), which returns a data frame of flags along with the run ID for each run.
Use guild.compare() for a data frame with flags and also scalars (this mirrors the guild compare command).
Use a comprehension over the rows in runs, using .run.value (which returns guild.run.Run object) to explicitly read the flag values as a dict for each run. This uses a lower level interface that’s stable, so you can rely on this:
flags = [(row.run.value.id, row.run.value.get("flags"))
for _index, row in runs.iterrows()]
This returns a list of tuples of run ID and run flags. Note row.run.value.get("flags") — this calls get() on the low level Guild run object, which reads the flags run attribute.
If I’m misunderstanding your request, please let me know!