"""Get data from MySQL with pandas library."""
import MySQLdb
import pandas.io.sql as psql
con = MySQLdb.connect(db='work', user='root', passwd='') #DB-Verbindung
sql = """SELECT product_id, product_nm, product_features FROM electronics"""
df = psql.read_sql(sql, con) #Extrahieren Sie Daten in Form von Pandas DataFrame
con.close()
Beim Erstellen eines Vektors für Clustering usw. unter Verwendung großer Datenmengen wird beim Löschen der Daten eine iterative Verarbeitung durchgeführt, um den Speicherverbrauch zu verringern.
"""Delete rows while creating dataset."""
X = []
for index, row in df.iterrows(): #Iterieren Sie Zeile für Zeile
Xi = [row.col1, row.col2, row.col3]
X.append(X)
df = df.ix[index:] #Erstellen Sie beim Löschen von Daten einen Vektor, um den Speicherverbrauch zu reduzieren
Die erste Methode bereinigt den Code, hat jedoch den Nachteil langsamer Iterationen. Es ist um ein Vielfaches schneller, einmal aufzulisten.
"""High speed row iteration in pandas DataFrame"""
#Kopieren Sie die Daten in die Liste
df_index, df_col1, df_col2, df_col3 = \
list(df.index), list(df.col1), list(df.col2), list(df.col3)
del df #Daten löschen
for _ in df_index:
#Itate beim Löschen von Daten
col1, col2, col3 = df_col1.pop(), df_col2.pop(), df_col3.pop()
Xi = [col1, col2, col3]
X.append(Xi)
Recommended Posts