Manipuler des données en Python-essayez avec Pandas_plyr

Méthode de manipulation des données en général Pandas

J'ai écrit cet article avant

◆ Liste des méthodes récapitulatives de base des opérations de données dans Python Pandas http://qiita.com/hik0107/items/d991cc44c2d1778bb82e

Lors de la manipulation de données avec Pandas, la méthode ci-dessus est courante, Vous pouvez trouver le code un peu redondant ou illisible.

Je voudrais présenter un paquet appelé "pandas_ply" pour ces personnes. Il est particulièrement recommandé pour ceux qui ont utilisé Dplyr car il peut gérer les données dans une notation similaire à R's Dplyr.

Même si vous ne l'avez jamais utilisé, je pense qu'il est plus facile à utiliser que les Pandas natifs. Veuillez essayer par tous les moyens essayez.

Commencez à utiliser Pandas_ply

◆ paquet pandas_ply https://pypi.python.org/pypi/pandas-ply

Installez pandas_ply

pip install pandas_ply

Préparation du colis

setup.py


import pandas as pd
from pandas_ply import install_ply, X, sym_call

install_ply(pd)

Si vous appelez pandas puis install_ply depuis pandas_ply, C'est une spécification que la méthode de pandas_ply est donnée aux pandas

Vous êtes maintenant prêt.

En fait utiliser

Cliquez ici pour une utilisation détaillée (anglais) http://pythonhosted.org/pandas-ply/

Je vais l'utiliser pour les données. Ce sont des données célèbres pour Kaggle. titanic - train.csv https://www.kaggle.com/c/titanic/data

load.py


csv_path = "/files_dir/train.csv" ##Spécifiez l'emplacement du fichier csv
data = pd.read_csv(csv_path, delimiter=",")

##Données faciles à voir: obligatoire pour les nouveaux ensembles de données
print data.head(10)
print data.shape
data.describe()
print data.columns

Sélection des données ply_select

Vous pouvez accéder à la colonne avec "nom_colonne" ou X. nom_colonne. Créez également une nouvelle colonne (utilisation de type mutate dans Dplyr)

select.py


data.ply_select("Name", "Age",
                gender = X.Sex,  ##Vous pouvez changer le nom de la colonne
                is_adult = (X.Age >= 20)  ##Il sera également possible de définir de nouvelles colonnes
                )

Sélection de données ply_where

Utilisez ply_where lorsque vous souhaitez sous-ensemble uniquement les données qui remplissent certaines conditions

where.py


data.ply_where(X.Age>10, 
               X.Sex == "male",
               X.Embarked == "S"
               )  #Seules les données qui remplissent toutes les conditions avec Et sont sélectionnées

Si vous écrivez la même chose à la manière native de Pandas, cela ressemble à ceci:

where_equivalent.py


data.query(" Age>10 & Sex=='male' & Embarked == 'S' ") 
##Les chaînes de caractères sont mélangées et un peu déroutantes

data.ix[(data.Age>10) & (data.Sex =='male') & (data.Embarked=='S')] 
##Vous devez écrire le nom df plusieurs fois

Je pense qu'il y a des goûts individuels, mais je pense que pandas_ply est relativement lisible.

Ajouter un indicateur - dans ce cas, il serait peut-être préférable d'utiliser apply

J'ai écrit la méthode d'ajout d'une nouvelle colonne (ply_select) ci-dessus, Si vous souhaitez générer une nouvelle colonne dans des conditions compliquées, il est préférable d'utiliser la méthode apply de Pandas avec obéissance. Ça peut être bon.

Par exemple, si vous souhaitez ajouter un nouvel attribut à la colonne "démographique" en utilisant l'âge et le sexe dans les données ci-dessus Appelez comme suit. Soyez assuré que les nouvelles conditions de génération de colonnes resteront faciles à voir en tant que fonction.

apply.py


def add_demographic(data_input):
    if data_input.Age >=20:
        demo = "adut_m" if data_input.Sex == "male" else "adult_f"
    else:
        demo = "boy_and_girl"
    
    return demo

data.ix[ : , "Demographic"] = data.apply(add_demographic, axis=1)

À la fin

pandas_ply semble être un paquet en cours de développement, alors utilisez-le systématiquement. Ce paquet ne contient pas beaucoup d'informations, veuillez donc commenter si vous le connaissez.

Recommended Posts

Manipuler des données en Python-essayez avec Pandas_plyr
Manipulation des données PySpark
Échantillonnage dans des données déséquilibrées
Manipulation de date en Python
Manipulation des données avec les Pandas!
Résumé de base des opérations de données dans Python Pandas - Deuxième moitié: agrégation de données
Gérer les données ambiantes en Python
Afficher les données UTM-30LX en Python
Écrire des données au format HDF
Manipulation de la date des chaînes en Python
Obtenez des données LeapMotion en Python.
[Français] scicit-learn 0.18 Tutorial Manipulation des données de texte
Exporter les données DB au format json
Manipulation des pixels d'image en Python
Manipulation de chemin de fichier / dossier en Python
Lire les données des tampons de protocole avec Python3
Obtenir des données de Quandl en Python
Gérez les données au format NetCDF avec Python
Visualisation des données avec Python - dessinons une carte de chaleur fraîche
Stocker les données RSS dans Zabbix (expéditeur Zabbix)
Essayez de mettre des données dans MongoDB
Concours de prédiction de données en 3 étapes (titanesque)
Hashing de données en R et Python
Apprentissage automatique dans Delemas (acquisition de données)
Vérifiez le résumé des données dans CASTable
Prétraitement dans l'apprentissage automatique 2 Acquisition de données
Prétraitement dans l'apprentissage automatique 4 Conversion de données