Utilisez pandas_ply.
Faites quelque chose comme le dplyr de R avec les pandas.
Si vous pouvez utiliser la chaîne de méthodes, le code est facile à écrire et amusant.
Cette fois, jouons avec les données électorales.
Utilisation du nom du candidat du petit district électoral de la Chambre des représentants et des données sur le nombre de résultats lors de la recherche par nom, pandas -Jouer avec pli.
Préparatifs pour l'utilisation de pandas_ply.
import pandas as pd
from ply import install_ply, X, sym_call
install_ply(pd)
Lisez les données.
Ce sont les données du nom du candidat + le nombre de résultats lors de la recherche sur Google.
data = pd.read_csv("../kouho.hit.list", encoding="utf-8", header=0)
print data.head(2)
BLOCK NAME AGE PARTY STATUS HIT
0 Hokkaido 1er quartier Takahiro Yokomichi 73 Avant la démocratie 153000
1 Hokkaido 1 Ward Hiroyuki Noroda 56 Communiste Nouveau 346000
Vous pouvez les regrouper et les agréger.
partySummarize = (
data
.groupby('PARTY')
.ply_select(
meanAge=X.AGE.mean(),
candidateNum=X.NAME.size(),
)
)
print partySummarize
candidateNum meanAge
PARTY
Komei 9 52.111111
Communiste 292 53.188356
Nouvelle génération 39 50.461538
Démocratie 178 50.595506
Nulle part 45 53.177778
Vie 13 54.230769
Entreprise citoyenne 18 56.833333
Restauration 77 45.311688
LDP 283 53.346290
Diverses factions 5 52.400000
Le dplyr :: filter correspond à ply_where.
## under 30
print (data
.ply_where(X.AGE < 30)
.head(10)
)
21 Takako Suzuki, 7 quartiers, Hokkaido 28 Avant la démocratie 1670000
88 Akita 2 Ward Midorikawa Takashi 29 Nouveau démocrate 170000
174 Saitama 1 Ward Sho Matsumoto 29 Company Private New 3070000
221 Chiba 1st Ward Naoyoshi Yoshida 27 Communiste Nouveau 1690000
269 Tokyo 1st Ward Takanobu Nozaki 27 Nowhere New 530000
271 Noriyuki Ishizawa, 2nd Ward, Tokyo 27 Communiste Nouveau 156000
297 Tokyo 8 Ward Shingo Sawada 29 Communiste Nouveau 400000
306 Tokyo 11th Ward Shimomura Mei 27 Nowhere New 380000
390 Kanagawa 8 Ward Yasuhisa Wakabayashi 29 Communiste Nouveau 525000
403 Kanagawa 12 Ward Kotaro Amimura 25 Communiste Nouveau 106000
Les opérations correspondant à dplyr :: mutant sont également possibles dans ply_select.
print (data
.ply_select(
NAME=X.NAME,
HIT_x10000 = X.HIT / 1000
)
.head(10)
)
HIT_x10000 NAME
0 15.30 Takahiro Yokomichi
1 34.60 Hiroyuki Noroda
2 268.00 Toshimi Funahashi
3 54.30 Yoshihiro Iida
4 54.Dix Takamori Yoshikawa
5 152.00 Maki Ikeda
6 7.42 Kenko Matsuki
7 5.92 Masatoshi Kanakura
8 33.50 Satoshi Arai
9 30.30 Hiroko Yoshioka
Je me demande pourquoi l'ordre des colonnes est changé.
Plus amusant que d'utiliser des pandas bruts.
Je ne sais pas comment trier. Qu'est-ce qui correspond à dplyr :: arrange?
c'est tout.
Ce message a été publié par Github: point_right: Qiita.
Recommended Posts