2017-07-16 5 views
1

Dies ist eine Teilmenge eines Datenrahmens zu schaffen:einen neuen Datenrahmen unter Verwendung von Differenzen zwischen zwei Spalten in Pandas

index id drug sentences  SS1 SS2 
1  2 lex  very bad  0  1 
2  3 gym  very nice  1  1 
3  7 effex hard   1  0 
4  8 cymba poor   1  1 

Ich mag Zeilen finden, die SS1 und SS2 sind unterschiedlich und erstellen Sie einen neuen Datenrahmen darauf bezogen. Die Ausgabe sollte so sein:

index id drug sentences  SS1 SS2 
1  2 lex  very bad  0  1 
3  7 effex hard   1  0 

Dies ist mein Code:

df [['index','id', 'drug', 'sentences', 'SS1', 'SS2' ]] = np.where(df.SS1 != df.SS2) 

Aber es hat den folgenden Fehler: ValueError: Must have equal len keys and value when setting with an ndarray

Jeder Vorschlag?

+0

@ Open-Source bereits gab eine funktionierende Alternative, sondern nur als Referenz , Sie haben einen 'ValueError', weil' np.where (df.SS1! = df.SS2) 'einen Index zurückgibt, für den Ihre Auswertung gilt, nein t ein 'Datenrahmen'. – peterfields

+0

@peterfields danke – Mary

Antwort

5

Eine Möglichkeit kann folgende sein:

df_new = df[df.SS1 != df.SS2] 
print(df_new) 

Ausgang:

index id drug sentences SS1 SS2 
0  1 2 lex very bad 0 1 
2  3 7 effex  hard 1 0 

where Verwendung:

df_new = df.where(df.SS1 != df.SS2).dropna() 
print(df_new) 
Verwandte Themen