This should be quick, but none of the pivot/groupby work I\'m doing is coming up with what I need.
I have a table like this:
Letter Period
If I understand you correctly,pivot_table
might be closer to what you need:
df = df.pivot_table(index=["YrMnth", "Letter"], columns="Period", values="Amount")
Which gives you:
Period 1 3 4 5 6 7 8 9 10 11 12
YrMnth Letter
2014-12 B NaN NaN NaN NaN 0 NaN NaN NaN NaN NaN NaN
C NaN NaN NaN NaN 4 6 1 2 3 7 5
D 10 17 16 NaN 12 14 11 8 9 15 13
2015-01 B 20 25 NaN 26 23 18 19 24 21 22 NaN
C NaN NaN NaN NaN NaN NaN NaN NaN 27 NaN NaN
As suggested in the comments:
df = pd.pivot_table(df, index=["YrMnth", "Letter"], columns="Period", values="Amount")
Period 1 3 4 5 6 7 8 9 10 11 12
YrMnth Letter
2014-12 B NaN NaN NaN NaN 0 NaN NaN NaN NaN NaN NaN
C NaN NaN NaN NaN 4 6 1 2 3 7 5
D 10 17 16 NaN 12 14 11 8 9 15 13
2015-01 B 20 25 NaN 26 23 18 19 24 21 22 NaN
C NaN NaN NaN NaN NaN NaN NaN NaN 27 NaN NaN
Also yields the same, if someone wants to clarify how the former will fail that would be great.