Not sure if pivot is the right function.
go from:
df = pd.DataFrame({
    "date" :  ["a", "a", "a", "a", "b", "b", "b","b"],
    "col"  :  ["v", "r", "v", "r", "v", "r", "v","r"],
    "value":  [1,2,3,4,5,6,7,8]
})
to:
df_new = pd.DataFrame({
    "date": ['a', 'a', 'b', 'b'], 
    'v':    [1,3,5,7], 
    'r':    [2,4,6,8]
})
I did not find the precise solution in the question linked.
Here is my solution, similar to point 10 in question:
import pandas as pd 
df = pd.DataFrame({
    "row" :  ["a", "a", "a", "a", "b", "b", "b","b"],
    "col"  :  ["v", "r", "v", "r", "v", "r", "v","r"],
    "val0":  [1,2,3,4,5,6,7,8]
})
df.insert(0, 'count', df.groupby(['row', 'col']).cumcount())
df.pivot(index=['count', "row"], columns='col', values='val0').reset_index().drop("count", axis=1)
