code: def process(df, **kwargs):
      '''
      Process a dataframe in canonical form ``(t_step, agent_id, key, value, value_type)`` into
      two dataframes with a column per key: one with the history of the agents, and one for the
      history of the environment.
      '''
      env, agents = split_df(df)
      return process_one(env, **kwargs), process_one(agents, **kwargsf process(df, **kwargs):
      '''
      Process a dataframe in canonical form ``(t_step, agent_id, key, value, value_type)`` into
      two dataframes with a column per key: one with the history of the agents, and one for the
      history of the environment.
      '''
      env, agents = split_df(df)
      return process_one(env, **kwargs), process_one(agents, **kwargs)
docs: Process a dataframe in canonical form ``(t_step, agent_id, key, value, value_type)`` into
      two dataframes with a column per key: one with the history of the agents, and one for the
      history of the environment.