[PYTHON] La valeur de meta lors de la spécification d'une fonction sans valeur de retour avec Dask dataframe s'applique

Avant cela, installez Dask

Une des façons de faire des calculs parallèles en Python est d'appliquer le dataframe Dask (un enseignant de Google m'a dit hier.) Dask peut être installé avec pip comme suit.

$ pip install dask 

Maintenant, importez normalement comme ci-dessous, mais

import dask.dataframe as dd

J'ai une erreur comme celle-ci

ModuleNotFoundError: No module named 'toolz'

Alors

$ pip install toolz

Encore

ImportError: fsspec is required to use any file-system functionality.

Bien que pointu

$ pip install fsspec

Maintenant qu'il est enfin prêt à être utilisé, passons au sujet principal.

Sujet principal

J'ai converti le pandas DataFrame en un dataframe Dask, puis j'ai essayé d'appliquer une fonction sans valeur de retour à la ligne comme ceci:

import pandas as pd
import dask.dataframe as dd

#Une fonction qui sort la somme des valeurs des colonnes A et B vers la sortie standard
def print_sum(pd_series):
    print(pd_series['A'] + pd_series['B'])

A = pd.DataFrame({'A': [1.0, 1.5, 2.0 ], 'B': [5.0, 2.0, 1.2]},index = [1,2,3])
A_dd = dd.from_pandas(A, npartitions=2)

A_dd.apply(print_sum, axis = 1).compute(scheduler='processes')

Si vous l'exécutez avec cela, vous obtiendrez l'avertissement suivant.

You did not provide metadata, so Dask is running your function on a small dataset to guess output types. It is possible that Dask will guess incorrectly.
To provide an explicit output types or to silence this message, please provide the `meta=` keyword, as described in the map or apply function that you are using.

Apparemment, vous devez spécifier quel type de données la fonction donnée à .apply () renvoie dans l'argument meta. Mais il n'y a pas de valeur de retour ... C ++ Si vous faites void Je n'écris pas de python ...

J'ai vérifié! C'est `` Aucun ''!

import pandas as pd
import dask.dataframe as dd

#Une fonction qui sort la somme des valeurs des colonnes A et B vers la sortie standard
def print_sum(pd_series):
    print(pd_series['A'] + pd_series['B'])

A = pd.DataFrame({'A': [1.0, 1.5, 2.0 ], 'B': [5.0, 2.0, 1.2]},index = [1,2,3])
A_dd = dd.from_pandas(A, npartitions=2)

A_dd.apply(print_sum, axis = 1, meta = 'None').compute(scheduler='processes') # meta = 'None'

Voilà la solution! Je l'ai écrit pendant longtemps, mais c'est tout!

Recommended Posts

La valeur de meta lors de la spécification d'une fonction sans valeur de retour avec Dask dataframe s'applique
Trouvez la valeur optimale de la fonction à l'aide d'un algorithme génétique (partie 2)
Récupérer l'appelant d'une fonction en Python
Pour générer une valeur au milieu d'une cellule avec Jupyter Notebook
Ceci est un exemple d'application de fonction dans dataframe.
Lorsqu'une variable locale portant le même nom que la variable globale est définie dans la fonction
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant
Lorsqu'une chaîne de caractères d'une certaine série se trouve dans la clé du dictionnaire, la chaîne de caractères est convertie en valeur du dictionnaire.
Prouvons le théorème d'addition d'une fonction triangulaire en remplaçant la fonction par une fonction dans SymPy (≠ substitution)
Une raison simple pour laquelle la valeur de retour de round (2.675,2) est de 2,67 en python (elle devrait être de 2,68 en réalité ...)
Lors de l'incrémentation de la valeur d'une clé qui n'existe pas
Traitez le contenu du fichier dans l'ordre avec un script shell
Soyez prudent lorsque vous spécifiez la valeur d'argument par défaut dans la série Python 3
[Python] Temps d'exécution lorsqu'une fonction est saisie dans une valeur de dictionnaire
Si vous donnez une liste avec l'argument par défaut de la fonction ...
Une fonction qui mesure le temps de traitement d'une méthode en python
Comment trouver l'adresse mémoire de la valeur de la trame de données Pandas
Trouvez la valeur optimale de la fonction à l'aide d'un algorithme génétique (partie 1)
Créez une fonction pour obtenir le contenu de la base de données dans Go
À propos de la valeur de retour de pthread_mutex_init ()
À propos de la valeur de retour de l'histogramme.
L'histoire d'un capteur de stationnement en 10 minutes avec le kit de démarrage GrovePi +
Générez une liste contenant le nombre de jours du mois en cours.
Recevez une liste des résultats du traitement parallèle en Python avec starmap
Trouvez la valeur minimale de la fonction par la méthode d'optimisation du groupe de particules (PSO)
J'ai fait une erreur en récupérant la hiérarchie avec MultiIndex of pandas
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
Obtenez la valeur de retour d'un script shell externe (ls) avec python3
Comportement lors du retour dans le bloc with
Précautions lors du décapage d'une fonction en python
[Python] Précautions lors de la recherche des valeurs maximum et minimum avec un tableau numpy avec un petit nombre d'éléments
[Python & SQLite] J'ai analysé la valeur attendue d'une course avec des chevaux dans la fourchette 1x win ①
[python] [meta] Le type de python est-il un type?
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
N'hésitez pas à rédiger un test avec nez (dans le cas de + gevent)
Remplissez la valeur manquante (null) de DataFrame avec les valeurs avant et après avec pyspark
[AWS] Lançons un test unitaire de la fonction Lambda dans l'environnement local
La première chose à vérifier quand un No Reverse Match se produit dans Django
Comparez la somme de chaque élément dans deux listes avec la valeur spécifiée en Python
Comment obtenir une liste de fichiers dans le même répertoire avec python
Ajoutez la fonction pour renvoyer la valeur minimale (min) à la pile faite par Python, mais push / pop / min est de base O (1) !!
La valeur de retour (générateur) d'une fonction qui combine finally et yield ne doit pas être passée directement à next
Dessiner un graphique d'une fonction quadratique en Python
[Python] Récupérez les fichiers dans le dossier avec Python
Attention à la valeur de retour de __len__
Copiez la liste en Python
Trouvez le nombre de jours dans un mois
Découvrez la fraction de la valeur saisie en python
Correction des arguments de la fonction utilisée dans map
Sortie sous la forme d'un tableau python
Rechercher par la valeur de l'instance dans la liste
N'y a-t-il pas une valeur par défaut dans le dictionnaire?
Lorsqu'un fichier est placé dans le dossier partagé de Raspberry Pi, le processus est exécuté.
[Python Data Frame] Lorsque la valeur est vide, remplissez-la avec la valeur d'une autre colonne.
Il est devenu TLE lorsque j'ai confirmé l'opération avec la fonction d'impression dans la compétition pro
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Valeur de retour de quit () -Y a-t-il quelque chose retourné par la "fonction qui termine tout"?
Une note lors de la vérification si la clé spécifiée existe dans le dictionnaire défini avec python