2016-10-27 3 views
1

Ich habe einen Datensatz mit Sequenz Tupeln und Ziele wie die folgenden:Erste zwei Zielwerte von Vorhersagealgorithmen

 input_0 input_1 input_2 output 
0  0  1.0 2.0  4.0 
1  1  2.0 4.0  2.0 
2  2  4.0 2.0  4.0 
3  4  2.0 4.0  7.0 
4  2  4.0 7.0  8.0 

I Algorithmen trainiert haben die Ausgabe als ein Zielwert verwendet wird.

Was ich will, ist, um die zwei meisten Variablen zu erhalten, die von einem Tupel auftreten können.

Zum Beispiel, wenn ich zwei Tupeln für die Ausbildung haben: a,b,c,d und a,b,c,e Ich möchte mit dem jeweiligen Prozentsatz d und e als Ergebnis erhalten.

Ist so etwas möglich?

+0

So Sie gruppieren möchten die Tupel durch die ersten 3 Artikel , und berechnen Sie die Häufigkeit des vierten Artikels pro Gruppe? Folgt das nicht grundsätzlich Ihrer Beschreibung? –

+0

@AmiTavory ja, das ist was ich brauche – Kratos

+1

Also was ist deine Frage, genau? –

Antwort

1

Aus Ihren Kommentaren scheint dies ein Pandas.DataFrame zu sein. Sagen Sie bitte mit

from collections import Counter 

df = pd.DataFrame({ 
    'input_0': [1, 1, 2, 4, 2], 
    'input_1': [1, 1, 2, 4, 4], 
    'input_2': [2, 2, 2, 4, 7], 
    'output': [4, 3, 4, 7, 8]}) 
>>> df 
    input_0 input_1 input_2 output 
0 1 1 2 4 
1 1 1 2 3 
2 2 2 2 4 
3 4 4 4 7 
4 2 4 7 8 

Dann wird folgendes zeigen die beiden am häufigsten vorkommenden Elemente für jeden Eingangstupel beginnen, sowie deren zählt:

>>> df.output.groupby([df.input_0, df.input_1, df.input_2]).apply(lambda s: Counter(s).most_common(2)).reset_index() 
    input_0 input_1 input_2 output 
0 1 1 2 [(3, 1), (4, 1)] 
1 2 2 2 [(4, 1)] 
2 2 4 7 [(8, 1)] 
3 4 4 4 [(7, 1)] 
+0

@Kratos Sorry, fehlende Import hinzugefügt. –

+0

Ja, ich habe es herausgefunden, danke! – Kratos