In an initial statement, police said that the train had been evacuated and three people had received medical treatment.
But the Luzerner Zeitung, citing local police officer Kurt Graf, reported that seven people had been "lightly injured" and that four had been hospitalized.
The crash occurred at around 2pm, when the train veered off the tracks close to Lucerne station in central Switzerland.
It's still unclear what caused the derailment, but the train has been identified as a Eurocity 158 train. It had left Milan's station at 10:15am and had been scheduled to arrive in Basel at 2:45pm.
Train traffic through Lucerne station was suspended until at least Wednesday evening as a result of the derailment, and the Swiss national rail company said it was uncertain when service would resume.