I am an Indian passport holder and travelling from Nanjing to Bangkok to Calcutta (all are connecting flight). There is transit at Bangkok (Bangkok Don Mueang International Airport) for 23 hours, then I have a connecting flight to Calcutta from Suvarnabhumi airport. So I need to change the airport. Do I need a transit visa?
Yes, you do. When changing airports you have to leave the arrival airport's transit area and enter Thailand in order to travel to the departure airport.
You can try Visa on arrival http://newdelhi.thaiembassy.org/en/visa-on-arrival-en/