How can I insert missing dates in a dataframe with more than 2 columns? In my data, each date has an observation between sp1 and sp2. If there is no observation between sp1 and sp2 on a day, that date is missing.
Here's what part of my df looks like:
the_date sp1 sp2 win loss sp1_name sp2_name
4/1/13 A B 8 8 A_name B_name
4/2/13 A B 6 10 A_name B_name
4/3/13 A B 7 5 A_name B_name
4/5/13 A B 7 5 A_name B_name
4/6/13 A B 6 2 A_name B_name
4/7/13 A B 15 10 A_name B_name
4/1/13 A C 3 8 A_name C_name
4/2/13 A C 2 12 A_name C_name
4/3/13 A C 9 7 A_name C_name
4/4/13 A C 14 8 A_name C_name
4/6/13 A C 9 10 A_name C_name
4/1/13 A D 13 13 A_name D_name
4/2/13 A D 13 5 A_name D_name
4/3/13 A D 7 1 A_name D_name
4/4/13 A D 15 11 A_name D_name
4/5/13 A D 3 11 A_name D_name
4/6/13 A D 12 11 A_name D_name
4/7/13 A D 9 9 A_name D_name
For instance, 4/4/13 for A-B is missing. What I want in my output is to insert those missing dates with all the corresponding columns and assign 0 to wins and losses. So my output will look like this the rows with * added):
the_date sp1 sp2 win loss sp1_name sp2_name
4/1/13 A B 8 8 A_name B_name
4/2/13 A B 6 10 A_name B_name
4/3/13 A B 7 5 A_name B_name
*4/4/13 A B 0 0 A_name B_name
4/5/13 A B 7 5 A_name B_name
4/6/13 A B 6 2 A_name B_name
4/7/13 A B 15 10 A_name B_name
4/1/13 A C 3 8 A_name C_name
4/2/13 A C 2 12 A_name C_name
4/3/13 A C 9 7 A_name C_name
4/4/13 A C 14 8 A_name C_name
*4/5/13 A C 0 0 A_name C_name
4/6/13 A C 9 10 A_name C_name
*4/7/13 A C 0 0 A_name C_name
4/1/13 A D 13 13 A_name D_name
4/2/13 A D 13 5 A_name D_name
4/3/13 A D 7 1 A_name D_name
4/4/13 A D 15 11 A_name D_name
4/5/13 A D 3 11 A_name D_name
4/6/13 A D 12 11 A_name D_name
4/7/13 A D 9 9 A_name D_name
I know that if we have a 2 column dataframe (values, date), we can pad the dataframe with missing dates by merging it with a full-range time. However, my dataframe has more than 2 columns.
Also, this is just part of my data, so I have other combinations for other dates:
sp1 sp2
B C
B A
B D
C A
C B
C D
D B
D C
D A
Any clues?