Faits: A. En 1992, W._ SA (devenue depuis lors X._ SA; a donné en location à A._ et à Y._ des locaux d'une surface totale de 266 m2 destinés à l'exploitation d'un studio de danse classique. Les locaux se répartissent sur deux niveaux: 191 m2 au rez-de-chaussée et 75 m2 au premier étage de l'immeuble sis à la rue Toepffer ..., à Genève. Le bail était conclu pour cinq ans et se renouvelait ensuite tacitement de cinq ans en cinq ans. Après le décès de A._, le bail s'est poursuivi, par avenant du 4 avril 2001, avec Y._ uniquement. Depuis le 1er janvier 2005, le loyer, sans les charges, est fixé à 38'160 fr. par an, soit 3'180 fr. par mois, ce qui représente un loyer annuel de 143 fr. par m2. L'immeuble abritant le studio de danse a été construit en 1893. Il est situé à proximité de l'Église russe, soit dans un quartier à connotation résidentielle où se trouvent également des activités commerciales, telles des études d'avocat ou des sociétés financières. Les transports publics ne desservent pas directement l'immeuble. Les façades, les fenêtres et les stores du bâtiment ont été rénovés en 1980. Les locaux loués comportent un hall d'entrée, des fenêtres à double vitrage, des installations électriques anciennes; il n'y a ni cuisine, ni cafétéria, ni parking, ni local d'archives; les sanitaires sont anciens. Tant l'état général de l'immeuble que l'état des locaux eux-mêmes sont qualifiés de moyens. Par avis officiel du 18 avril 2007, X._ a résilié le bail pour le 31 octobre 2007. Le congé a été signifié pour des motifs économiques, afin de relouer les locaux à un tiers pour un loyer supérieur. B. Y._ a saisi la Commission de conciliation d'une requête en annulation de congé. Non conciliée, l'affaire a été portée devant le Tribunal des baux et loyers du canton de Genève. Par jugement du 17 septembre 2008 rendu après instruction écrite, sans audition des parties et sans les enquêtes sollicitées par la bailleresse, le tribunal a annulé le congé. En substance, il a retenu que la bailleresse n'avait pas démontré qu'elle pourrait relouer les locaux à un tiers pour un loyer non abusif supérieur au loyer payé par la locataire actuelle. Saisie par la bailleresse, la Chambre d'appel en matière de baux et loyers du canton de Genève a confirmé ce jugement par arrêt du 19 juin 2009. Sur les dix-huit exemples de locaux commerciaux au centre de Genève présentés par la bailleresse à titre de comparaison, la cour cantonale n'a examiné que les onze objets situés dans un périmètre délimité par le boulevard Jaques-Dalcroze au nord-ouest, la rue Ferdinand-Hodler au nord-est, la rue des Contamines à l'ouest et, au sud, la rue de l'Athénée, le boulevard des Tranchées, la place Claparède et la rue Jean-Sénebier. Elle a écarté les autres objets, sis hors de ce périmètre, pour les motifs suivants: le périmètre de la rue du Rhône et du Rond-Point de Rive est un quartier caractérisé par la présence de nombreux commerces de luxe, de rues piétonnes et qui est très bien desservi par les transports publics, en particulier le tram; par ailleurs, le tissu urbain de la Vieille Ville ou de Champel est très différent de celui du périmètre où se trouvent les locaux litigieux. Sur les onze objets retenus, la cour cantonale est arrivée à la conclusion que, pour des motifs divers, aucun n'était comparable avec les locaux dont le bail a été résilié. C. X._ SA interjette un recours en matière civile. Elle conclut principalement à ce qu'il soit constaté que le bail a été valablement résilié avec effet au 31 octobre 2007 et à ce qu'aucune prolongation de bail ne soit accordée à la locataire; à titre subsidiaire, elle demande le renvoi de la cause à la cour cantonale. Y._ propose, à titre principal, le rejet du recours et, à titre subsidiaire, une prolongation de bail de six ans échéant le 31 octobre 2013. La cour de céans a délibéré sur le recours en séance publique.