Pandas, une bibliothèque pour manipuler facilement des données

Posté par  . Édité par karteum59, _PhiX_, Benoît Sibaud, olivierweb, palm123, Jiehong, Nÿco, Benoît et mornik. Modéré par tuiu pol. Licence CC By‑SA.
Étiquettes :
38
19
jan.
2014
Python

À l'occasion de la sortie de la version 0.13, je vous présente cette bibliothèque basée sur Python qui permet de travailler simplement et efficacement avec des données structurées. Jusqu'à présent, les versions se sont enchaînées rapidement mais celle-ci arrive plusieurs mois après la précédente. On peut donc espérer qu'un code développé pour cette nouvelle version demandera moins de maintenance.

Logo pandas

Les principales possibilités sont :

  • récupérer des données depuis des fichiers CSV, tableaux Excel, des pages web, HDF5, etc. ;
  • grouper, découper, alléger, déplacer, écrire les données ;
  • ces données peuvent être à une ou deux dimensions, avec des manques, ou encore temporelles avec ou sans périodicité.

Pour peu que les données soient correctement formatées, pandas peut s'en sortir même dans le cas où la quantité dépasse les capacités de votre machine en traitant les sources morceaux par morceaux.

Le développement de cette bibliothèque s'inscrit dans la problématique de disposer d'outils pour manipuler de gros volumes de données dans le but de leur exploitation scientifique ou commerciale.

Note : pandas fonctionne avec la même base de code sur Python 2 et 3 mais ce n'est, peut-être, pas le cas de toutes les dépendances.

Journal SeqTools et retour d'expérience sur le traitement de jeux de données en python

Posté par  . Licence CC By‑SA.
38
29
oct.
2018

SeqTools est une librairie que j'ai créée pour transformer des jeux de données trop gros pour tenir en mémoire. Elle remplit un rôle comparable à itertools de la librairie standard, mais fait aussi en sorte de donner accès aux éléments par indexation, ce qui est plus pratique.

Dépôt du code
Documentation

L'objectif principal consiste à prendre une ou plusieurs sources de données et de les combiner ou de modifier leurs éléments pour obtenir une version transformée.
Par exemple, partant d'une (…)

HackInScience : automatiser l'enseignement de Python

Posté par  . Édité par Pierre Jarillon, Xavier Teyssier, patrick_g, palm123 et Ysabeau 🧶. Modéré par Pierre Jarillon. Licence CC By‑SA.
38
15
jan.
2021
Éducation

HackInScience est un logiciel de publication et de correction automatique d'exercices, son instance hackinscience.org est une collection d'exercices Python.

HackInScience est né en 2014 : j'enseignais alors le Python en université (promos d'environ 70 élèves), et avec les collègues on s'est dit qu'il serait bon de passer plus de temps à aider les élèves qu'a les corriger, que la correction c'était automatisable, mais que passer du temps avec eux, ça ne l'était pas.

Deux "on jette tout et on recommence" plus tard, et deux confinements plus tard, on en est là :

Tout le code est open-source, c'est un simple Django pour présenter les exercices, des websockets pour recevoir sans attendre la correction du bot, et un Celery pour "load-balancer" les rendus aux serveurs de correction. Je n'enseigne plus en université mais le site étant toujours en ligne, et les confinements aidant, il a trouvé son public : 1500 exercices sont réussis par semaine en ce moment.

J’essaye de passer deux semaines par an à plein temps sur le projet, en 2019 j’ai travaillé l’internationalisation (être traducteur de la doc de Python et ne pas traduire ses propres projets n’était pas bien sérieux…), et en 2020 la notion de classement et d’équipes.

Journal CPython abandonne Mercurial et passe à Git et Github

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
2
jan.
2016

Les développeurs de Python ont décidé d'abandonner leur infrastructure actuelle, basée sur divers outils open-source écrits en Python et auto-hébergés, pour passer aux services propriétaires proposés par Github. Cela implique de passer le code source de Mercurial à Git.

La raison fondamentale, détaillée dans le PEP 481, est la nécessité de faciliter le travail des contributeurs du projet, l'arrivée de nouveaux contributeurs, et les contributions occasionnelles (correction de typos, amélioration de doc).

L'infrastructure actuelle utilise un outillage spécifique, comme (…)

Journal vim: Au revoir syntastic, bonjour ALE

Posté par  . Licence CC By‑SA.
Étiquettes :
37
24
août
2018

J'utilise Vim pour éditer des fichiers et notamment pour coder. Et j'aime bien avoir l'intégration des linters dans mon éditeur pour afficher les erreurs à côté du texte.

Un linter, c'est un programme qui analyse le code et signale les infractions aux règles de codages, les potentiels problèmes, erreurs de syntaxes, variables non utilisées, etc. En Python, par exemple, j'utilise pylint et flake8.

Pour intégrer ces linters à un éditeur de texte, il existe des plugins.

Depuis longtemps je (…)

minipy, un serveur Python dans son Android

Posté par  . Édité par palm123, BAud, Davy Defaud, Benoît Sibaud, Cyprien et gUI. Modéré par Davy Defaud. Licence CC By‑SA.
Étiquettes :
37
11
juil.
2019
Android

Minipy est une application Android dont les sources sont distribuées sous licence MIT. Cette application permet d’exécuter des petites commandes Python depuis son smartphone ou sa tablette Android. En elle‐même, cette application ne fait pas grand’chose et il faut bien reconnaître que son utilité est très limitée.

Toutefois, son intérêt n’est pas dans le pourquoi, mais plutôt dans le comment. Cette dépêche va donc expliquer comment cette application fonctionne et va détailler les différentes étapes nécessaires à la création de cette application jusqu’à son empaquetage plutôt non conventionnel.

Dans une seconde partie, cette dépêche va s’intéresser à l’architecture de Minipy qui permet de faire tourner « en local » un serveur Python Tornado qui dialogue avec une page HTML (rendue par un WebView) via des WebSockets.

minipy

Journal Idle Do, un script pour faire tourner des commandes quand l'ordinateur est inactif

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
3
jan.
2021

Pour éviter de perdre mes photos en cas d'incendie ou de vol, j'ai décidé de les sauvegarder sur AWS Deep Glacier. C'est très bon marché (20 centimes par mois pour ~150 Go) et sans doute assez écologique puisque les fichiers sont stockés hors ligne (il faut plusieurs jours pour les restaurer)

C'est super, mais nous sommes en 2021 et mon bled n'est toujours pas couvert par la fibre. Ce qui veut dire que j'ai 80Ko/s en upload les bons jours (…)

Python — partie 9 ― formateur de code, analyse statique

37
9
juin
2021
Python

Cette dépêche est la suite d’une série sur Python initiée en septembre 2019. Après un sommeil cryogénique d’un an et demi, on repart en forme avec d’autres contenus Python à vous proposer : actualité, bonnes pratiques, astuces, témoignages… Elle a été rédigée principalement à deux voix, Oliver et Philippe, qui vous font part de leur expérience sur les fonctions.

Cette dixième partie présente les formateurs de code bien pratiques et les analyseurs de code. 🐍 🐍 🐍

Le logo de Python est entouré de petites icônes symbolisant la variété des domaines où s’applique Python, et, à droite, un joyeux barbu se tient derrière un écran d’ordinateur qui affiche « partie = 10, "Formateurs" \n print(partie) »

Pour rappel, les autres dépêches déjà publiées :

Journal Pythran à Scipy2013 !

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
4
juin
2013

Ô joie, le compilo Pythran dont les évolutions sont suivies par une foule Linuxienne en délire, a droit de citer lors de la grand messe annuelle du Python scientifique, Scipy2013, plus exactement .

Un grand merci à vous tous qui répondez, critiquez, hurlez, piaillez dans les différents journaux pythranesques, ça m'aide beaucoup pour la motivation, et aussi pour améliorer les choses.

Comme le défi Pythran, c'est d'avoir de la perf en gardant la syntaxe Python, et vu que (…)

Créer une application web avec Jupyter, ipywidgets et voilà

Posté par  . Édité par ZeroHeure, Ysabeau 🧶, Davy Defaud et Arkem. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
37
4
oct.
2019
Python

Vous connaissez sans doute Jupyter, cet outil de développement tournant dans un navigateur qui est particulièrement en vogue chez les scientifiques et plus généralement dans les domaines liés au traitement des données. Aujourdʼhui je vais te parler d’une possibilité offerte par Jupyter qu’il ne me semble pas, sauf erreur de ma part, avoir vu évoquée ici, à savoir le développement dʼapplications web.

Journal Génération de code (Python) avec Grako

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
3
juil.
2016

Depuis quelques jours, je découvre une lib Python, grako. Et je dois dire, elle est assez magique !

Besoin initial, trouver la lib!

Le besoin initial s'est présenté au boulot : on doit écrire un DSL pour interroger un ensemble de systèmes fournissant chacun de la donnée à leurs manières.

La première chose faite, c'est d'écrire la grammaire eBNF de ce DSL. Histoire de prévoir comment on va parser le bazar.

La seconde chose faite, et c'est devenu un réflexe (…)

Journal L/D·es différents paradigmes de programmation en Python

Posté par  (Mastodon) . Licence CC By‑SA.
Étiquettes :
37
7
nov.
2019

Utilisateur de Python tendance Data Sciences pas doué ni réellement formé en programmation, j’ai toujours eu une sorte de complexe par rapport au fait que ce que j’écris en Python sont juste des scripts basiques qui n’utilisent pratiquement pas le caractère orienté objet de Python. Caractère qui me semblait être une des composantes fondamentales de l’identité de Python. Il semblerait qu’il n’est en fait pas non pythonic d’écrire selon d’autre paradigme de programmation que celui orienté objet. C’est même une (…)

Journal le dessous des cartes

Posté par  . Licence CC By‑SA.
37
14
août
2015

Cher journal,

J'aime bien lire sur ce site les histoires de création de carte comme celle-ci ou celle-là, alors je vais te conter la mienne.

quelle est la question ?

Partant d'une question pertinente : "Est-il facile de se ravitailler en GPL en France", j'en suis venu à une question idiote : "Est ce qu'il y a une grande différence des prix du carburant en fonction d'où on habite".

J'imagine une carte de France des points de vente, catégorisés en (…)

Sortie de Shinken 0.6

36
6
mai
2011
Python

Les auteurs de Shinken, outil de supervision compatible avec Nagios, viennent de publier leur dernières avancées sur ce projet. Cette version est dans la continuité de ce à quoi ils nous ont habitué, avec de nombreuses nouveautés :

  • un module de découverte automatique du réseau ;
  • une amélioration de l’architecture distribuée, pour gérer au mieux les pertes des sites distants et les DMZ ;
  • un support avancé des environnements VMWare.

Pythran 0.6 - compilation de noyaux scientifiques écrits en Python

Posté par  (site web personnel) . Édité par ZeroHeure, Benoît Sibaud, palm123 et tuiu pol. Modéré par Benoît Sibaud. Licence CC By‑SA.
36
6
nov.
2014
Python

Pythran est un compilateur pour les noyaux de calcul scientifique écrit en Python. Il permet d'écrire des modules dans un large sous-ensemble de Python + Numpy, d'ajouter quelques lignes de commentaire pour spécifier les types des fonctions exportées, enfin de compiler l'ensemble pour obtenir un module natif capable (parfois !) d'utiliser efficacement multi-cœurs et unités vectorielles. Le reste de la dépêche décrit le fonctionnement du compilateur, les évolutions récentes et propose une comparaison avec les alternatives : Cython, numba et parakeet.