{"id":1141,"date":"2022-03-17T16:48:00","date_gmt":"2022-03-17T15:48:00","guid":{"rendered":"http:\/\/labodemaths.fr\/WordPress3\/?p=1141"},"modified":"2022-03-28T11:47:21","modified_gmt":"2022-03-28T09:47:21","slug":"nsi-table-de-donnees","status":"publish","type":"post","link":"https:\/\/labodemaths.fr\/WordPress3\/nsi-table-de-donnees\/","title":{"rendered":"NSI : table de donn\u00e9es"},"content":{"rendered":"\n<h3>1. Exploitation d&rsquo;une table de donn\u00e9es \u00e0 l&rsquo;aide d&rsquo;un tableur.<\/h3>\n\n\n\n<p>T\u00e9l\u00e9charger la table de donn\u00e9es ci-dessous et l&rsquo;ouvrir \u00e0 l&rsquo;aide d&rsquo;un tableur et d&rsquo;un \u00e9diteur de texte ou un \u00e9diteur de code.<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2022\/03\/nombre-de-validations-par-arrets-de-metro-et-tramway.csv\">nombre-de-validations-par-arrets-de-metro-et-tramway<\/a><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2022\/03\/nombre-de-validations-par-arrets-de-metro-et-tramway.csv\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><strong>Comma-separated values<\/strong>, connu sous le sigle&nbsp;<strong>CSV<\/strong>, est un&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Fichier_texte\">format texte<\/a>&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Format_ouvert\">ouvert<\/a>&nbsp;repr\u00e9sentant des donn\u00e9es tabulaires sous forme de valeurs s\u00e9par\u00e9es par des&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Virgule\">virgules<\/a>. Ce format n&rsquo;a jamais vraiment fait l&rsquo;objet d&rsquo;une sp\u00e9cification formelle. Toutefois, la&nbsp;RFC&nbsp;4180<sup><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Comma-separated_values#cite_note-RFC-4180-1\">1<\/a><\/sup>&nbsp;d\u00e9crit la forme la plus courante et \u00e9tablit son&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Multipurpose_Internet_Mail_Extensions\">type MIME<\/a>&nbsp;\u00ab&nbsp;<code>text\/csv<\/code>&nbsp;\u00bb, enregistr\u00e9 aupr\u00e8s de l&rsquo;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Internet_Assigned_Numbers_Authority\">IANA<\/a>.<br>Un fichier CSV est un&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Fichier_texte\">fichier texte<\/a>, par opposition aux formats dits \u00ab&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Fichier_binaire\">binaires<\/a>&nbsp;\u00bb. Chaque ligne du texte correspond \u00e0 une ligne du tableau et les virgules correspondent aux s\u00e9parations entre les colonnes. Les portions de texte s\u00e9par\u00e9es par une virgule correspondent ainsi aux contenus des cellules du tableau. Une ligne est une suite ordonn\u00e9e de caract\u00e8res termin\u00e9e par un caract\u00e8re de&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Fin_de_ligne\">fin de ligne<\/a>&nbsp;(<em>line break<\/em>&nbsp;\u2013&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Saut_de_ligne\">LF<\/a>&nbsp;ou&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Carriage_Return_Line_Feed\">CRLF<\/a>), la derni\u00e8re ligne pouvant en \u00eatre exempt\u00e9e.<\/p><p><\/p><cite>https:\/\/fr.wikipedia.org\/wiki\/Comma-separated_values<\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><strong>VisiCalc, le premier tableur<\/strong><br>En 1978, Daniel Bricklin, \u00e9tudiant \u00e0 Harvard, devait \u00e9tablir des tableaux comptables pour une \u00e9tude de cas sur Pepsi-Cola. Plut\u00f4t que de calculer \u00e0 la main il pr\u00e9f\u00e9ra programmer \u00ab&nbsp;un tableau noir et une craie \u00e9lectroniques&nbsp;\u00bb, selon sa propre expression. Son premier prototype, en Basic, pouvait manipuler un tableau de vingt lignes et cinq colonnes.<br>Bricklin se fit aider ensuite par Bob Frankston, du MIT. Celui-ci r\u00e9\u00e9crivit le programme en assembleur et le condensa en 20 koctets pour qu\u2019il puisse fonctionner sur un micro-ordinateur.<br>A l\u2019automne 1978, Daniel Fylstra, ancien du MIT et r\u00e9dacteur \u00e0 Byte Magazine, per\u00e7ut le potentiel commercial de ce produit. Il sugg\u00e9ra de l\u2019adapter \u00e0 l\u2019Apple-II ainsi qu\u2019aux syst\u00e8mes HP85 et HP87.<br>En janvier 1979 Bricklin et Frankston cr\u00e9\u00e8rent Software Arts Corporation&nbsp;; en mai 1979, la soci\u00e9t\u00e9 Personal Software de Fylstra, nomm\u00e9e plus tard VisiCorp, lan\u00e7a la commercialisation de VisiCalc&nbsp;(cette appellation condense l\u2019expression \u00ab&nbsp;Visible Calculator&nbsp;\u00bb).<br>VisiCalc \u00e9tait vendu 100 $. Il avait d\u00e9j\u00e0 l\u2019allure des tableurs d\u2019aujourd\u2019hui<br><a href=\"http:\/\/www.volle.com\/travaux\/tableur.htm#_ftn2\">[2]<\/a>&nbsp;: les \u00e9volutions ult\u00e9rieures les plus visibles porteront sur l\u2019adjonction de possibilit\u00e9s graphiques ainsi que sur l\u2019utilisation de la souris.<\/p><cite><a href=\"http:\/\/www.volle.com\/travaux\/tableur.htm\">http:\/\/www.volle.com\/travaux\/tableur.htm<\/a><\/cite><\/blockquote>\n\n\n\n<p>A l&rsquo;aide des outils propos\u00e9s par votre tableur :<br>1. D\u00e9terminer le nombre total de validations sur l&rsquo;ensemble des stations pour le mois de Janvier 2016.<br>2. Trier le nom des stations par ordre alphab\u00e9tique.<br>3. D\u00e9terminer la station sur l&rsquo;ensemble du r\u00e9seau qui a le plus de validations en Mars 2016.<br>4. D\u00e9terminer le nombre total de validations \u00e0 la gare Lille Flandres tous r\u00e9seaux confondus.<br>5. D\u00e9terminer \u00e0 l&rsquo;aide d&rsquo;un filtre les stations ayant eu entre 10 000 et 15 000 validations au mois de Janvier 2016.<br>6. D\u00e9terminer \u00e0 l&rsquo;aide d&rsquo;un filtre les stations de Tram ayant eu plus de 10 000 validations. Les classer par ordre d\u00e9croissant.<\/p>\n\n\n\n<h3>2. Utilisation des donn\u00e9es d&rsquo;une table en Python.<\/h3>\n\n\n\n<h4>a. Mise en place<\/h4>\n\n\n\n<ul><li>Cr\u00e9er un dossier TP_Table_de_donnees_csv,<\/li><li>t\u00e9l\u00e9charger le fichier concernant notre table de donn\u00e9es au format csv et la placer dans votre dossier.<br><\/li><\/ul>\n\n\n\n<p>Copier le code ci-dessous dans un \u00e9diteur python et enregistrer votre fichier dans votre dossier.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># on ouvre et on lit le fichier de donn\u00e9es\nwith open('nombre-de-validations-par-arrets-de-metro-et-tramway.csv',encoding=\"utf8\", errors='ignore') as fichier:\n    lignes=fichier.readlines()<\/code><\/pre>\n\n\n\n<h4>Exercice 1 :<\/h4>\n\n\n\n<p>Apr\u00e8s avoir ex\u00e9cut\u00e9 le programme :<br>&#8211; examiner le contenu de la variable lignes,<br>&#8211; d\u00e9terminer le type de cette variable,<br>&#8211; afficher le contenu du premier et du deuxi\u00e8me \u00e9l\u00e9ment de cette variable.<\/p>\n\n\n\n<p>Avant de traiter, en python, les donn\u00e9es issues d&rsquo;un fichier csv, il est n\u00e9cessaire de leur faire subir un traitement.<br>Modifier votre programme en celui ci-dessous :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># on ouvre et on lit le fichier de donn\u00e9es\nwith open('nombre-de-validations-par-arrets-de-metro-et-tramway.csv', errors='ignore') as fichier:\n    lignes=fichier.readlines()\n    # on parcourt ligne par ligne notre table\n    donnees=()\n    for ligne in lignes:\n        # on supprime les caract\u00e8res sp\u00e9ciaux de retour de ligne\n        # et on '\u00e9clate' les donn\u00e9es s\u00e9par\u00e9es par un ;\n        # sous la forme d'un tuple\n        ligne_nettoyee=ligne.rstrip('\\n').split(\";\")\n        donnees+=(ligne_nettoyee,)<\/code><\/pre>\n\n\n\n<h4>b. Convertir ses donn\u00e9es pour un acc\u00e8s plus facile.<\/h4>\n\n\n\n<p>Pour travailler plus facilement sur les donn\u00e9es, on va les mettre sous la forme d&rsquo;un tuple que l&rsquo;on nommera stations qui contiendra les donn\u00e9es pour chaque station sous la forme d&rsquo;un dictionnaire.<br>On aura, par exemple, comme fin de notre tuple stations :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{'Mode': 'TRAM',\n  'Station': 'SAINT MAUR',\n  'Janvier 2016': 48823,\n  'F\u00e9vrier 2016': 44097,\n  'Mars 2016': 49935,\n  'Avril 2016': 43599,\n  'Mai 2016': 46245,\n  'Juin 2016': 48359,\n  'Juillet 2016': 36673,\n  'Ao\u00fbt 2016': 28727,\n  'Septembre 2016': 51538,\n  'Octobre 2016': 51060,\n  'Novembre 2016': 54861,\n  'D\u00e9cembre 2016': 52560,\n  'Janvier 2017': 55870,\n  'F\u00e9vrier 2017': 46728,\n  'Mars 2017': 58850,\n  'Avril 2017': 45437,\n  'Mai 2017': 47103,\n  'Juin 2017': 49763,\n  'Juillet 2017': 38098,\n  'Ao\u00fbt 2017': 31161})<\/code><\/pre>\n\n\n\n<h4>Exercice 2 :<br>&#8211; \u00e9crire une fonction permettant de faire la conversion de nos donn\u00e9es en un tuple stations contenant des dictionnaires d\u00e9crivant les donn\u00e9es de chaque station. <br>&#8211; \u00e9crire une fonction permettant de r\u00e9cup\u00e9rer les donn\u00e9es relatives \u00e0 une station connaissant son nom,<br>&#8211; \u00e9crire une fonction permettant de calculer le nombre moyen mensuel de validations pour une station dont on connait le nom,<br>&#8211; \u00e9crire une fonction permettant de d\u00e9terminer le nom de la stations ayant eu le plus de validations pour un mois donn\u00e9.<\/h4>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background\">Proposition de correction : 1ere fonction exercice 2<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def conversion_dict():\n# on r\u00e9cup\u00e8re nos donn\u00e9es en variable globale\n# pour ne pas \u00eatre oblig\u00e9 de la passer en param\u00e8tre de\n# la fonction\n    global donnees\n    \n    # on cr\u00e9e un tuple qui contiendra les stations sous forme de dictionnaires\n    stations=()\n    # on r\u00e9cup\u00e8re les noms des descripteurs ou champs\n# qui constituent toujours la ligne 0 d'un fichier csv\n    descripteurs=donnees&#91;0]\n   # on parcourt les donn\u00e9es \u00e0 partir de la ligne 1\n    for i in range(1,len(donnees)):\n        # on d\u00e9finit une station\n        ma_ligne=donnees&#91;i]\n        ma_station={}\n        # on parcourt les descripteurs par indices\n        for j in range(len(descripteurs)):\n            ma_station&#91;descripteurs&#91;j]]=ma_ligne&#91;j]\n        stations+=(ma_station,)\n    \n    return stations\n\n# on teste notre fonction\nstations=conversion_dict()\nprint(stations)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1. Exploitation d&rsquo;une table de donn\u00e9es \u00e0 l&rsquo;aide d&rsquo;un tableur. T\u00e9l\u00e9charger la table de donn\u00e9es&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/labodemaths.fr\/WordPress3\/nsi-table-de-donnees\/\">Read the post<span class=\"screen-reader-text\">NSI : table de donn\u00e9es<\/span><\/a><\/div>\n","protected":false},"author":2,"featured_media":1142,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[57],"tags":[],"_links":{"self":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/1141"}],"collection":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/comments?post=1141"}],"version-history":[{"count":23,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/1141\/revisions"}],"predecessor-version":[{"id":1923,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/1141\/revisions\/1923"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media\/1142"}],"wp:attachment":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media?parent=1141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/categories?post=1141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/tags?post=1141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}