I just figured that SparseDataFrame is using this shift_indexer. However I don't think it is reusable enough to move to core/common. I plan to revert back to original code. What do you think?