I'm trying to find the most optimized/Pythonesque way of doing the following (and didn't see similar problem already addressed on SO): For each columns in df1, indexed by date, I'd like to keep a (time) slice, defined in df2 (where the rows in column "key" correspond to the indexes in df1) and fill the rest with NaN's. ie :
df1:
A B C
01/01 10 100 1
02/01 20 200 2
03/01 30 300 3
04/01 40 400 4
05/01 50 500 5
06/01 60 600 5
and
df2:
keys start end
0 A 02/01 04/01
1 B 04/01 06/01
2 C 01/01 04/01
would result in :
A B C
01/01 NaN NaN 1
02/01 20 NaN 2
03/01 30 NaN 3
04/01 40 400 4
05/01 NaN 500 NaN
06/01 NaN 600 NaN
Until now, the only solutions I'm finding are by iterating over each columns of df1, and using loc with reindexed version of df2, both things I don't really like doing in Pandas (but perhaps am I wrong ?). Any other idea how to do what seems to be a basic Pandas' problem (but got me quite stuck) ? Thank you!