"""Get data from MySQL with pandas library."""
import MySQLdb
import pandas.io.sql as psql
con = MySQLdb.connect(db='work', user='root', passwd='') #Connexion DB
sql = """SELECT product_id, product_nm, product_features FROM electronics"""
df = psql.read_sql(sql, con) #Extraire des données sous forme de pandas DataFrame
con.close()
Lors de la création d'un vecteur pour le clustering, etc. à l'aide de données à grande échelle, un traitement itératif est effectué lors de la suppression des données afin de réduire la consommation de mémoire.
"""Delete rows while creating dataset."""
X = []
for index, row in df.iterrows(): #Itérer ligne par ligne
Xi = [row.col1, row.col2, row.col3]
X.append(X)
df = df.ix[index:] #Créez un vecteur lors de la suppression des données pour réduire la consommation de mémoire
La première méthode nettoie le code, mais présente l'inconvénient d'itérations lentes. C'est beaucoup plus rapide de lister une fois.
"""High speed row iteration in pandas DataFrame"""
#Copiez les données dans la liste
df_index, df_col1, df_col2, df_col3 = \
list(df.index), list(df.col1), list(df.col2), list(df.col3)
del df #Suprimmer les données
for _ in df_index:
#Itate lors de la suppression des données
col1, col2, col3 = df_col1.pop(), df_col2.pop(), df_col3.pop()
Xi = [col1, col2, col3]
X.append(Xi)
Recommended Posts