2017-05-14 1 views
0

Ich habe ein Datenframe mit Spalten: Benutzer, Betrag_spend, Monat, Tag, Stunde Ich versuche, meine Daten in Training und Testdaten zu teilen; Ich möchte die erste Ladung bis zu 365 Tage bekommen * 80% Ich bin mir nicht sicher, wie ich das machen soll. Ich habe einen Jahresumsatz Datenrahmen, die eine Zusammenfassung der Verkäufe auf jeden Benutzer basierend enthält:Splitdaten in 80% von 365 Tagen von der ersten Ladung in Training und Test

f1 = {'year': ['min', 'max'], 'amount_spent':['sum','mean', 'count','max']} 
yearly_sales = df.groupby('user')['year', 'amount_spent'].agg(f1).reset_index() 
yearly_sales.columns = ['user', 'sum', 'mean', 'count', 'high', 'before', 'after'] 
yearly_sales['duration'] = (yearly_sales.after - yearly_sales.before) + 1 

Ich bin neu in diesem so, wenn mir jemand diese Spalte erstellen helfen könnte? Danke!

Antwort

0

Sagen wir Xcols ist eine Liste von Spaltennamen von Prädiktoren und ycol ist der Spaltenname von Ziel in Ihrem data.
Sie können den train_test_split von scikit-learn wie folgt verwenden.

from sklearn.model_selection import train_test_split 
X_train, X_test, y_train, y_test = train_test_split(
    data.loc[:,Xcols].as_matrix(), data.loc[:,ycol].as_matrix(), 
    test_size=0.33, random_state=42) 

Weitere Informationen über das Modul in der Dokumentation hier überprüfen: http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html

Verwandte Themen