In pandas.utils.testing there's a class `RNGContext` that's a context manager for the random state. I'd use that to return the user to their original state once you're done with the splitting, rather than modifying the global state.