Verwenden Sie pandas_ply.
Mach so etwas wie Rs Dplyr mit Pandas.
Wenn Sie die Methodenkette verwenden können, ist der Code einfach zu schreiben und macht Spaß.
Lassen Sie uns diesmal mit den Wahldaten spielen.
Verwendung von Name des Kandidaten für das Wahlbezirkshaus und Daten zur Anzahl der Treffer bei der Suche nach Namen, Pandas -Spielen Sie mit Lage.
Vorbereitungen für die Verwendung von pandas_ply.
import pandas as pd
from ply import install_ply, X, sym_call
install_ply(pd)
Lesen Sie die Daten.
Es sind die Daten des Kandidatennamens + die Anzahl der Treffer beim Googeln.
data = pd.read_csv("../kouho.hit.list", encoding="utf-8", header=0)
print data.head(2)
BLOCK NAME AGE PARTY STATUS HIT
0 Hokkaido 1. Bezirk Takahiro Yokomichi 73 Vor der Demokratie 153000
1 Hokkaido 1 Bezirk Hiroyuki Noroda 56 Kommunist New 346000
Sie können sie gruppieren und aggregieren.
partySummarize = (
data
.groupby('PARTY')
.ply_select(
meanAge=X.AGE.mean(),
candidateNum=X.NAME.size(),
)
)
print partySummarize
candidateNum meanAge
PARTY
Komei 9 52.111111
Kommunist 292 53.188356
Nächste Generation 39 50.461538
Demokratie 178 50.595506
Nirgendwo 45 53.177778
Leben 13 54.230769
Firmenbürger 18 56.833333
Restaurierung 77 45.311688
LDP 283 53.346290
Verschiedene Fraktionen 5 52.400000
Der Filter dplyr :: entspricht ply_where.
## under 30
print (data
.ply_where(X.AGE < 30)
.head(10)
)
21 Takako Suzuki, 7 Bezirke, Hokkaido 28 Vor der Demokratie 1670000
88 Akita 2 Ward Midorikawa Takashi 29 Demokratisch Neu 170000
174 Saitama 1 Ward Sho Matsumoto 29 Unternehmen Privat Neu 3070000
221 Chiba 1. Bezirk Naoyoshi Yoshida 27 Kommunist New 1690000
269 Tokyo 1st Ward Takanobu Nozaki 27 Nirgendwo neu 530000
271 Noriyuki Ishizawa, 2. Bezirk, Tokio 27 Kommunist New 156000
297 Tokyo 8 Ward Shingo Sawada 29 Kommunist New 400000
306 Tokyo 11th Ward Shimomura Mei 27 Nirgendwo neu 380000
390 Kanagawa 8 Ward Yasuhisa Wakabayashi 29 Kommunist New 525000
403 Kanagawa 12 Ward Kotaro Amimura 25 Kommunist New 106000
Operationen, die dplyr :: mutant entsprechen, sind auch in ply_select möglich.
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.10 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
Ich frage mich, warum die Reihenfolge der Spalten geändert wird.
Mehr Spaß als mit rohen Pandas.
Ich weiß nicht, wie ich sortieren soll. Was entspricht dplyr :: arrangieren?
das ist alles.
Dieser Beitrag wurde veröffentlicht von Github: point_right: Qiita.
Recommended Posts