2016-09-09 2 views
-2

Wie kann ich zwei Spalten einer Liste in Python vergleichen? Ich habe bereits versucht, diese, aber es gibt den Fehler wie unten beschrieben:Python vergleichen zwei Spalten einer Liste

import pandas as pd 

TrainDate=pd.read_csv('../input/train_date.csv', delimiter=',', nrows=10, skiprows=0) 
TrainDateNumeric=TrainDate.fillna(0).values 

if (TrainDateNumeric[:,1] == TrainDateNumeric[:,2]): 
    print ("Yes") 

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

+0

Das ist keine Liste; Das ist ein numpliges Array. –

+1

Und die Ausnahmemeldung wird leicht gesucht. Hast du versucht zu sehen, was es bedeutet? Numpy vergleicht den Inhalt * value mit dem Wert * und erzeugt ein Array von Booleschen Ergebnissen, nicht * einen * booleschen Wert. Also gibt es hier kein * wahres oder falsches Ergebnis. –

+1

Wenn Sie sich ansehen, was Sie hier versuchen, sollten Sie 'if (TrainDateNumeric [:, 1] == TrainDateNumeric [:, 2]) .all(): drucken (" Ja ")' das Problem hier ist Das 'if' erwartet einen skalaren Wert mit' == 'auf Datenrahmenspalten und erzeugt eine' Reihe' von booleschen Werten – EdChum

Antwort

1

sie sind numpy Array. Sie müssen auf diese Weise vergleichen

import numpy as np 
if np.allclose(Train[:,1], Train[:,2]): 
    print ("Yes") 
Verwandte Themen