[PYTHON] Verwenden Sie Pandas-Ply

Verwenden Sie Pandas-Ply

Inhalt

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.

Code

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

Finden Sie die Anzahl der Kandidaten und das Durchschnittsalter nach Parteien heraus

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

Kandidaten unter 30 Jahren

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

Anzahl der Treffer bei der Suche (10.000)

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.

Impressionen

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

Verwenden Sie Pandas-Ply
Verwenden Sie DeepLabCut
Verwenden Sie pycscope
Verwenden Sie Sammlungen
Verwenden Sie: Django-MySQL
Verwenden Sie Pylements.rb
Verwenden Sie Numpy
Verwenden Sie GitPython
Verwenden Sie Miniconda
Verwenden Sie Invariant TSC
Warum Linux verwenden?
[C] Verwenden Sie qsort ()
Verwenden wir pytube
Verwenden Sie schwache Referenzen
Verwenden Sie die django-debug-Symbolleiste nicht lokal
Verwenden Sie die Kombinationsoptimierung