Python Pandas ne convient pas au traitement par lots

Qu'est-ce que les pandas?

Pandas est une bibliothèque qui peut traiter diverses données, centrée sur une structure de données tabulaire appelée DataFrame. C'est une table dans la base de données, donc si vous connaissez SQL, vous pouvez commencer immédiatement. Familier avec ceux qui analysent les données avec Python.

Comment l'avez-vous introduit?

Il y a beaucoup d'informations par ouï-dire, mais je pense qu'elles ont été présentées à l'équipe de développement de cette manière.

«L'hybridation du sur site et du cloud progresse, et le stockage des bases de données est de plus en plus distribué.

Principalement accro à: crier:

Problème de valeur manquante

Étant donné que la valeur manquante NaN est traitée comme un flottant, au moment où la valeur manquante est mélangée dans la colonne int, la colonne entière est convertie en flottant. Si les informations de type sont corrompues, cela a tendance à être un problème, en particulier lorsqu'elles sont soumises à la base de données.

>>> s = pd.Series([0, 1, 2])
>>> s[2]
2
>>> s[1] = np.nan
>>> s[2]
2.0

http://pandas.pydata.org/pandas-docs/stable/missing_data.html

Problème de référence

Avec juste une petite opération d'index, vous pouvez être forcé dans une situation incertaine que ce soit une vue ou une copie (!?)

def do_something(df):
   foo = df[['bar', 'baz']]  # Is foo a view? A copy? Nobody knows!
   # ... many lines here ...
   foo['quux'] = value       # We don't know whether this will modify df or not!
   return foo

http://pandas.pydata.org/pandas-docs/stable/indexing.html#why-does-assignment-fail-when-using-chained-indexing

Dans ce cas, quel que soit le nombre de tests effectués, la qualité n'est pas garantie. Un avertissement peut être émis au moment de l'exécution, mais la seule partie suspecte est d'appeler explicitement la méthode de copie ...

Mort subite

En regardant le journal d'un certain lot, il y a 1% de chances de mourir. Il existe de nombreux éléments liés à la mémoire et les vidages de mémoire se multiplient. Il gèle également.

*** glibc detected *** /usr/local/anaconda/bin/python: free(): invalid pointer:
Fatal Python error: GC object already tracked

Personnes Personnes Personnes > Mort subite <  ̄Y^Y^Y^Y ̄

Puisqu'il s'agit d'un environnement Python 2.7 et Pandas 0.17, il peut être résolu en mettant à jour ....

Que faire à l'avenir: penser:

Dans les nouveaux développements futurs, la politique consiste à ne pas utiliser autant que possible Pandas avec Luigi. Après tout, Pandas était destiné à l'analyse, et il n'était pas bon de l'utiliser par lots en premier lieu ....

Cependant, même à des fins d'analyse, je pense personnellement que le problème de référence est fatal, je vais donc utiliser Spark si je veux un DataFrame à l'avenir. Bien qu'il puisse être écrit dans Scala de type statique, notez que la vérification de compilation ne fonctionne pas pour les opérations de schéma essentielles. Bibliothèque utilisant des chats sans cadreもありますが、あくまでproof-of-conceptです。

À propos, Luigi a l'égalité pour chaque tâche et suppose une donnée de sortie, donc cela peut ne pas convenir en fonction du flux de données à assembler. Et le développeur de Luigi, Spotify, semble migrer vers Google Cloud Dataflow et développer la bibliothèque de wrapper scio de Scala ...

Scio - A Scala API for Google Cloud Dataflow & Apache Beam

Recommended Posts

Python Pandas ne convient pas au traitement par lots
Le rond de Python n'est pas strictement rond
La liste Python n'est pas une liste
Pandas 100 coups pour les débutants en Python
[Python] Traitement itératif (for, while)
Emballage Python de l'API Qiita pour le traitement par lots pour récupérer les publications Qiita
Principes de base de Pandas pour les débutants ⑧ Traitement des chiffres
Notes personnelles pour le traitement d'images python
Python pour la déclaration ~ Qu'est-ce qui est itérable ~
À quoi sert le trait de soulignement Python (_)?
Le sous-système Windows pour Linux ne s'affiche pas
[Python] Qu'est-ce que la série pandas et DataFrame?
python Remarque: lorsque easy_install ne peut pas être utilisé
[Python] Erreur de nom: le nom'urlparse 'n'est pas défini
[Python] [pandas] Comment pd.DataFrame (). T est-il implémenté?
Inject est recommandé pour DDD en Python
Pourquoi Python est choisi pour l'apprentissage automatique
Modèle pour l'écriture de scripts batch en python
[Python] Un script utile pour le traitement Excel / csv
Pandas du débutant, par le débutant, pour le débutant [Python]
5 raisons pour lesquelles le traitement est utile pour ceux qui veulent se lancer avec Python
Pandas Python: recherchez DataFrame à l'aide d'expressions régulières
Wagtail est le meilleur CMS pour Python! (Peut-être)
Le journal Python n'est pas sorti avec docker-compose up
Traitement d'image? L'histoire du démarrage de Python pour
Traitement d'image avec la configuration de l'environnement Python pour Windows
scipy.sparse n'est pas optimisé pour les opérations internes du produit
30/10/2016 else pour Python3> pour:
python [pour moi]
Python est facile
Mes pandas (Python)
traitement d'image python
Traitement de fichiers Python
Lot de commodité Python
Qu'est-ce que python
Python est une instance
mémo pandas python
Qu'est-ce que Python
Entrée clé qui n'attend pas l'entrée clé en Python
[Python] Mesure et affiche le temps nécessaire au traitement
Erreur python d'aujourd'hui: HTTPError: 404 Erreur du client: introuvable pour l'url:
Résumé des méthodes de prétraitement pour les débutants en Python (trame de données Pandas)
Créer un environnement pour le traitement du langage naturel avec Python
Electron est la meilleure solution pour le développement multi-plateforme de Python
[Python] pandas Code susceptible d'être réutilisé
python> vérifier NoneType ou non> si a == None:> si a vaut None:
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
mémo python utilisant perl - type de dictionnaire (casse non valide)
[Python débutant] Variables et portée à l'intérieur de la fonction (lorsque le traitement à l'intérieur de la fonction est reflété à l'extérieur de la fonction et quand il n'est pas reflété)