How can I add another level value to a MultiIndex Initialized to a certain value (for example None). Hard to describe with words, better graphically, how to add the new value level:
df_before
a b c d
l1 l2
bar one 24 13 8 9
two 11 30 7 23
baz one 21 31 12 30
two 2 5 19 24
foo one 15 18 3 16
two 2 24 28 11
qux one 23 9 6 12
two 29 28 11 21
df_after
a b c d
l1 l2
bar one 24 13 8 9
two 11 30 7 23
new None None None None
baz one 21 31 12 30
two 2 5 19 24
new None None None None
foo one 15 18 3 16
two 2 24 28 11
new None None None None
qux one 23 9 6 12
two 29 28 11 21
new None None None None
Note: my DataFrame indeed has three levels, so a solution that could generalize to more levels would be appreciated. My best attempt was getting the unique values for the old level, append a new value and set the new level, but it didn't produce my desired result
# this is a failed attempt of what I wanted to do
new_level_values = [*list(df.index.get_level_values(2).unique()), "new"]
df.index = df.index.set_levels(levels=new_level_values, level=2)
df