Faits : A. A.a. Par contrat du 16 juin 2017 signé le 18 juin 2017, B._ et C._ (ci-après: les locataires, les demandeurs ou les intimés) ont pris à bail un appartement de 4,5 pièces, d'une surface de 101 m2, au rez-de-chaussée d'un immeuble à U._ appartenant à A._ (ci-après: la bailleresse, la défenderesse ou la recourante). Le loyer mensuel initial convenu était de 2'190 fr., auquel s'ajoutait un acompte de 270 fr. pour les frais accessoires. Selon la formule officielle de notification du loyer utilisée lors de la conclusion d'un nouveau bail datée du même jour, le précédent locataire payait un loyer mensuel net de 2'020 fr. dès 2009 et un acompte de 270 fr. pour les frais accessoires. L'augmentation de loyer était motivée par l'adaptation aux loyers usuels de la localité et du quartier. Par deux contrats du même jour, les locataires ont également pris à bail deux places de parc intérieures dans le sous-sol du garage, dont le loyer mensuel était de 130 fr. chacune. Selon la formule officielle, les précédents locataires payaient, pour chaque place de parc, un loyer de 110 fr. depuis septembre 2009. Il y est indiqué le même motif de hausse que celui invoqué pour l'appartement. A.b. L'État de Zurich, qui avait acheté, en société simple avec la caisse de pension de D._, les quatre parcelles sur lesquelles ont été construits des habitations, bâtiments et garages souterrains, est devenu seul propriétaire de l'immeuble par acte de cession du 18 décembre 2003, son associée lui ayant cédé sa part, soit la moitié. Le prix figurant dans l'acte de cession était de 24'950'000 fr. La fondation A._, créée à la suite d'un changement législatif dans le canton de Zurich, en est devenue propriétaire en 2014 par transfert dans le cadre d'une fusion. L'appartement litigieux se trouve dans l'un des 19 bâtiments construits entre 1996 et 1998 sur l'une de ces parcelles. B. Par requête déposée devant la Commission de conciliation en matière de baux à loyer du district de Nyon le 24 août 2017, les locataires ont contesté le loyer initial de l'appartement et des places de parc. Ayant fait opposition à la proposition de jugement rendue par cette commission et ayant obtenu une autorisation de procéder, ils ont déposé leur demande devant le Tribunal des baux du canton de Vaud le 4 décembre 2017, demandant, dans leurs dernières conclusions, à ce que le loyer mensuel net initial de leur appartement soit fixé à 814 fr. 30 (charges en sus) et, dès le 1er décembre 2018, à 1'375 fr. 70, que le loyer mensuel de chaque place de parc soit fixé à 80 fr., que la garantie de loyer soit réduite à 2'242 fr. 90 et que le trop-perçu leur soit restitué. La bailleresse a conclu au rejet des conclusions. Elle n'a fourni, en particulier, ni l'acte de cession, ni la note de calcul du rendement net, ni les factures relatives à l'ensemble des frais de construction de l'immeuble qui lui avaient été demandés, alléguant qu'il s'agissait d'un immeuble ancien et qu'il appartenait aux locataires de produire des pièces établissant des loyers de comparaison. Elle a produit une liste d'annonces immobilières pour des appartements de 4 à 4,5 pièces dans la même localité pour des loyers mensuels allant de 2'130 fr. à 2'850 fr., une étude statistique d'un bureau selon laquelle le loyer médian dans la localité pour un 4 pièces est de 260 fr. par m2 et par an, ainsi que des statistiques établies par le Département vaudois des finances et des relations extérieures, selon lesquelles le loyer mensuel net moyen des logements vaudois de 4 pièces était de 1'617 fr. en 2015 et de 1'633 fr. en 2016. Par jugement du 8 janvier 2019, le Tribunal des baux a admis la demande des locataires et fixé le loyer mensuel initial de l'appartement à 900 fr. dès le 16 août 2017 et le loyer mensuel net initial de chacune des deux places de parc intérieures à 50 fr., ordonné la restitution du trop-perçu et réduit à 2'700 fr. le montant de la garantie locative. Statuant le 2 octobre 2019 sur appel de la bailleresse qui avait réduit ses prétentions de loyer à 1'950 fr. pour l'appartement et à 120 fr. pour chacune des places de parc, la Cour d'appel civile du Tribunal cantonal du canton de Vaud a rejeté ledit appel et confirmé le jugement attaqué. C. Contre cet arrêt, qui lui a été notifié le 9 octobre 2019, la bailleresse a interjeté un recours en matière civile au Tribunal fédéral le 8 novembre 2019, concluant principalement à son annulation et au renvoi de la cause à la cour cantonale pour nouvelle instruction et nouvelle décision dans le sens des considérants. Subsidiairement, elle conclut, notamment et en substance, à sa réforme en ce sens que le loyer mensuel de l'appartement soit fixé à 1'950 fr. et celui de chacune des places de parc à 120 fr. En bref, elle reproche d'abord à la cour cantonale d'avoir arbitrairement retenu qu'elle aurait refusé de collaborer à l'établissement du calcul du rendement net. Elle conteste ensuite que le prix de revient de l'immeuble puisse être déterminé sur la base de l'acte de cession de 2003. Elle en déduit que, puisque le calcul du rendement net est impossible, le tribunal devait se baser sur des données statistiques cantonales ou communales. Enfin, subsidiairement, elle remet en cause la limitation de la revalorisation des fonds propres à 40 % et l'augmentation de 0,5 % en sus du taux hypothécaire de référence. Elle fait valoir que retenir un loyer de 900 fr. pour un tel appartement est choquant.