Faits : A. Par contrat du 20 octobre 2014, A._ (ci-après: la locataire ou la demanderesse) a pris à bail à compter du 15 décembre 2014 un appartement de 2,5 pièces d'environ 48 m2 au 5ème étage d'un immeuble sis route de... à Fribourg, appartenant à X._ (ci-après: la bailleresse ou la défenderesse). Le loyer mensuel brut était de 1'210 fr., soit 1'170 fr. de loyer net, 70 fr. d'acompte de frais accessoires et 70 fr. d'acompte de chauffage et d'eau chaude. L'immeuble dans lequel se trouve l'appartement loué, construit entre 1973 et 1974, était la propriété de la Fondation de prévoyance M._ SA et N._ SA, jusqu'à ce que tous les actifs et passifs de celle-ci soient repris par la bailleresse par voie de fusion. La fusion est intervenue sur la base du contrat de fusion du 12 juin 2008, du bilan de fusion au 31 décembre 2007 et de la décision de l'autorité de surveillance du 20 avril 2010. La valeur comptable de l'immeuble mentionnée dans le bilan au 31 décembre 2007, qui fait partie intégrante du contrat de fusion, est de 5'258'636 fr. 90. Savoir si ce montant peut être retenu comme prix de revient, et donc comme base pour le calcul du rendement net, est litigieux. B. B.a. Par requête du 16 janvier 2015, la locataire a saisi la Commission de conciliation en matière d'abus dans le secteur locatif du district de la Sarine d'une requête en contestation du loyer initial, au motif que l'avis de fixation du loyer ne mentionnait pas le précédent loyer. Elle concluait à ce que le loyer mensuel net soit fixé à 800 fr. dès le 15 décembre 2014. La bailleresse a admis la nullité du loyer initial et demandé à ce que le loyer soit fixé au montant de 970 fr. plus charges. A défaut d'accord trouvé lors de l'audience de conciliation, le loyer a été fixé provisoirement à 970 fr., plus 140 fr. d'acomptes de charges, dès le mois d'avril 2015. Par demande du 13 avril 2015, la locataire a ouvert action devant le Tribunal des baux de l'arrondissement de la Sarine contre la bailleresse, concluant à ce que le loyer mensuel soit fixé à 800 fr. dès le 15 décembre 2014, à ce que la bailleresse soit condamnée à lui restituer 945 fr. avec intérêts à 5% l'an dès le 6 février 2015 à titre de remboursement des loyers payés en trop du 15 décembre 2014 au 31 mars 2015 et à lui restituer 170 fr. par mois dès le 1er avril 2015 et jusqu'à l'entrée en force de la décision, avec intérêts à 5% l'an dès l'échéance moyenne, à titre de remboursement des loyers payés en trop dès le 1er avril 2015. Lors de l'audience du 2 septembre 2015, les débats ont été restreints, avec l'accord des parties, à la question de savoir si la défenderesse devait être astreinte à procéder à un calcul de rendement. Dans l'affirmative, il y avait lieu de déterminer le rendement de l'immeuble sur la base des pièces produites; dans la négative, la demanderesse acceptait d'ores et déjà que le loyer soit fixé au montant payé par l'ancien locataire, soit 891 fr., sous réserve des conséquences sur le loyer de la baisse du taux hypothécaire intervenue entretemps. Elle a réitéré cette position en cours de procédure (réponse à l'appel du 19 septembre 2017). Après que la défenderesse a produit diverses pièces, la demanderesse a modifié ses conclusions, en ce sens que le loyer mensuel soit fixé à 440 fr. dès le 15 décembre 2014 et à 406 fr. dès le 1er juillet 2015. Elle concluait également à ce que la bailleresse soit condamnée à lui restituer les loyers payés en trop du 15 décembre 2014 au 31 juillet 2015, soit la somme de 4'459 fr. avec intérêts à 5% l'an dès le 1er février 2016, de même que les loyers payés en trop dès le 1er août 2015 et jusqu'à l'entrée en force de la décision, soit 485 fr. par mois avec intérêts à 5% l'an dès l'échéance moyenne (art. 105 al. 2 LTF). Dans sa réponse du 15 juin 2015, la défenderesse a conclu à ce que le loyer soit fixé à 891 fr. net par mois dès le 15 décembre 2014 et reconnu devoir rembourser le trop-perçu. Dans son jugement du 13 juin 2017, le Tribunal a retenu que la défenderesse était devenue la nouvelle propriétaire de l'immeuble par succession universelle entre vifs, le 30 juillet 2010, soit la date retenue pour les effets juridiques de la fusion. L'immeuble n'était dès lors pas qualifiable d'" ancien ", de sorte qu'il y avait lieu de procéder à la détermination du critère du rendement net de la chose louée. Dans ce cadre, le tribunal a fixé à 5'258'636 fr. 90 le prix de revient de l'immeuble, soit la valeur comptable attribuée à celui-ci dans le contrat de fusion du 12 juin 2008(cf. consid. A). Au terme de son calcul, il a tenu pour admissible un loyer de 350 fr. 05 (183'441 fr. 25 x 2.29% : 12 mois) pour la période du 15 décembre 2014 au 30 juin 2015, et de 324 fr. 95 (170'294 fr. 70 x 2.29% : 12 mois) dès le 1er juillet 2015. Ne pouvant statuer ultra petita, il a fixé le loyer conformément aux dernières conclusions de la demanderesse, soit à 440 fr. par mois dès le 15 décembre 2014 et à 406 fr. par mois dès le 1er juillet 2015. Il a pour le reste condamné la défenderesse à rembourser les loyers payés en trop, sous réserve d'éventuels montants déjà versés à ce titre. B.b. Statuant le 2 octobre 2018, la IIe Cour d'appel civil du Tribunal cantonal a admis l'appel de la défenderesse et fixé le loyer initial à 891 fr. net par mois, auquel s'ajoute des acomptes mensuels de frais accessoires de 70 fr. et de chauffage/eau chaude de 70 fr. Elle a ce faisant rejeté l'appel joint formé par la demanderesse, tendant à ce que le loyer soit fixé à 300 fr. par mois dès le 1er juillet 2017 plus acomptes de frais accessoires et chauffage/eau chaude de 70 fr. chacun. Le raisonnement suivi par la cour cantonale sera repris en tant que de besoin dans les considérants qui suivent. C. Contre cet arrêt, la locataire demanderesse a interjeté un recours en matière civile au Tribunal fédéral le 30 octobre 2018. Elle conclut à ce que le loyer mensuel net soit fixé à 440 fr. pour la période du 15 décembre 2014 au 30 juin 2015, à 406 fr. pour la période du 1er juillet 2015 au 30 juin 2017 et à 300 fr. dès le 1er juillet 2017, loyers auxquels s'ajoutent des acomptes mensuels de frais accessoires de 70 fr. et de chauffage/eau chaude de 70 fr. Elle conclut également à ce que la défenderesse soit condamnée à lui restituer les loyers payés en trop pour les périodes précitées, sous réserve d'éventuels montants déjà versés à ce titre. La demanderesse se prévaut d'une violation de l'art. 269 CO. La défenderesse conclut au rejet du recours; la cour cantonale indique qu'elle n'a pas d'observations à formuler. La demanderesse a encore déposé une réplique.