We study the nurse staffing problem under random nurse demand and absenteeism. While the demand uncertainty is exogenous (stemming from the random patient census), the absenteeism uncertainty is endogenous, i.e., the number of nurses who show up for work partially depends on the nurse staffing level. For the quality of care, many hospitals have developed float pools of nurses by cross-training, so that a pool nurse can be assigned to the units short of nurses. In this paper, we propose a distributionally robust nurse staffing (DRNS) model that considers both exogenous and endogenous uncertainties. We derive a separation algorithm to solve this model under an arbitrary structure of float pools. In addition, we identify several pool structures that often arise in practice and recast the corresponding DRNS model as a monolithic mixed-integer linear program, which facilitates off-the-shelf commercial solvers. Furthermore, we optimize the float pool design to reduce the cross-training while achieving a specified target staffing costs. The numerical case studies, based on the data of a collaborating hospital, suggest that the units with high absenteeism probability should be pooled together.