Ich habe diesen Artikel schon einmal geschrieben
◆ Grundlegende Liste der zusammenfassenden Methoden der Datenoperationen in Python Pandas http://qiita.com/hik0107/items/d991cc44c2d1778bb82e
Bei der Bearbeitung von Daten mit Pandas ist die oben beschriebene Methode üblich: Möglicherweise ist der Code etwas redundant oder unlesbar.
Ich möchte ein Paket namens "pandas_ply" für solche Leute vorstellen. Es wird besonders für diejenigen empfohlen, die Dplyr verwendet haben, da es Daten in einer Notation ähnlich der von Dplyr von R verarbeiten kann.
Selbst wenn Sie es noch nie benutzt haben, denke ich, dass es einfacher zu benutzen ist als die einheimischen Pandas. Bitte versuchen Sie es auf jeden Fall.
◆ pandas_ply-Paket https://pypi.python.org/pypi/pandas-ply
Installieren Sie pandas_ply
pip install pandas_ply
Paketvorbereitung
setup.py
import pandas as pd
from pandas_ply import install_ply, X, sym_call
install_ply(pd)
Wenn Sie pandas und dann install_ply von pandas_ply aus aufrufen, Es ist eine Spezifikation, dass die Methode von pandas_ply Pandas gegeben wird
Sie sind jetzt bereit.
Klicken Sie hier für eine detaillierte Verwendung (Englisch) http://pythonhosted.org/pandas-ply/
Ich werde dies für die Daten verwenden. Es sind berühmte Daten für Kaggle. titanic - train.csv https://www.kaggle.com/c/titanic/data
load.py
csv_path = "/files_dir/train.csv" ##Geben Sie den Speicherort der CSV-Datei an
data = pd.read_csv(csv_path, delimiter=",")
##Leicht zu erkennende Daten: Erforderlich für neue Datensätze
print data.head(10)
print data.shape
data.describe()
print data.columns
Sie können auf die Spalte mit "Spaltenname" oder X.Spaltenname zugreifen. Erstellen Sie außerdem eine neue Spalte (mutate-ähnliche Verwendung in Dplyr).
select.py
data.ply_select("Name", "Age",
gender = X.Sex, ##Sie können den Spaltennamen ändern
is_adult = (X.Age >= 20) ##Es können auch neue Spalten definiert werden
)
Verwenden Sie ply_where, wenn Sie nur Daten unterteilen möchten, die bestimmte Bedingungen erfüllen
where.py
data.ply_where(X.Age>10,
X.Sex == "male",
X.Embarked == "S"
) #Es werden nur Daten ausgewählt, die alle Bedingungen mit Und erfüllen
Wenn Sie dasselbe auf Pandas 'native Weise schreiben, sieht es so aus:
where_equivalent.py
data.query(" Age>10 & Sex=='male' & Embarked == 'S' ")
##Die Zeichenketten sind durcheinander und etwas verwirrend
data.ix[(data.Age>10) & (data.Sex =='male') & (data.Embarked=='S')]
##Sie müssen den df-Namen viele Male schreiben
Ich denke, es gibt individuelle Geschmäcker, aber ich denke, dass pandas_ply relativ lesbar ist.
Ich habe oben die Methode zum Hinzufügen einer neuen Spalte (ply_select) geschrieben. Wenn Sie unter komplizierten Bedingungen eine neue Spalte generieren möchten, ist es besser, die Apply-Methode von Pandas gehorsam zu verwenden. Es kann gut sein.
Zum Beispiel, wenn Sie der Spalte "Demografisch" ein neues Attribut hinzufügen möchten, indem Sie Alter und Geschlecht in den obigen Daten verwenden Rufen Sie wie folgt an. Seien Sie versichert, dass die neuen Bedingungen für die Spaltengenerierung weiterhin als Funktion leicht zu erkennen sind.
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 scheint ein Paket zu sein, das sich in der Entwicklung befindet. Verwenden Sie es daher systematisch. Dieses Paket enthält nicht viele Informationen. Bitte kommentieren Sie, wenn Sie damit vertraut sind.