2017-12-13 3 views
0

Ich muss nach einem Wert in einem Pandas Datenframe suchen und wenn ich es nicht finde, füge es in den Datenrahmen ein.Datenframe suchen und anhängen

Einfach, aber ich bin auf sie (Neuling in Python) stecken ....

Die Datenrahmen haben nur eine Spalte mit dem Namen ‚Wert‘.

#sort a random position 
    randomico = randint(1,tamanhoRestrito) 
    #if the random value does not exist in the solution I add it into solution dataframe 
    if (solucao.iloc[0] == listaOrdenada.iloc[randomico]): 
     solucao.loc[solucao.index.max() + 1] = [listaOrdenada.iloc[randomico]] 

Der Fehler Ich erhalte ist:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 
+1

Können Sie zeigen Sie Ihre Daten hier – Wen

Antwort

0

Ich glaube, Sie Ihre Fehler durch Hinzufügen not und .any(), um Ihren Zustand zu lösen:

if not (solucao.iloc[0] == listaOrdenada.iloc[randomico]).any(): 

Ohne Ihre Daten zu sehen, seine ein bisschen schwer genau zu wissen, aber diese Alternative kann auch funktionieren und mehr Code-weise Sinn machen.

Ich nehme an, dass listaOrdenada.iloc[randomico] ein einzelner Wert ist.

if listaOrdenada.iloc[randomico] not in solucao['value'].values: 
    solucao.loc[solucao.index.max() + 1, 'value'] = listaOrdenada.iloc[randomico] 
+0

Dank das Problem gelöst! –

Verwandte Themen