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.
◆ 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.
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
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
)
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.
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)
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.