Ich bin völlig verwirrt, warum ich einen ValueError auf diesen Code bekomme; jede Hilfe wird geschätzt.Warum erscheint dieser Wert als mehrdeutig?
Ich habe einen Datenrahmen namens global_output mit zwei Spalten: eine Spalte von Wörtern und Spalte mit entsprechenden Werten. Ich möchte eine mittlere Aufteilung der Werte vornehmen und die Wörter in zwei Listen aufteilen - hoch und niedrig - je nachdem, ob sie über oder unter dem Median liegen.
Word Ranking
0 shuttle 0.9075
1 flying 0.7750
2 flight 0.7250
3 trip 0.6775
4 transport 0.6250
5 escape 0.5850
6 trajectory 0.5250
7 departure 0.5175
8 arrival 0.5175
Mein Code, dies zu tun ist wie folgt:
split = global_output['Abstraction'].quantile([0.5])
high = []
low = []
for j in range(len(global_output)):
if global_output['Ranking'][j] > split:
low_clt.append(global_output['Word'][j])
else:
high.append(global_output['Word'][j])
Allerdings halte ich diesen Fehler.
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Nun, ich verstehe, was der Fehler bedeutet: es sagt, ich versuche, eine Serie mit mehreren Werten zu bewerten, als ob es ein einzelner Wert war. Trotzdem kann ich einfach nicht sehen,
global_output['Ranking'][j]
ist in keiner Weise mehrdeutig, wenn j einen ganzzahligen Wert aus der Schleife nimmt. Wenn ich es in die Konsole gebe, liefert es jedes Mal einen Gleitkommawert. Was fehlt mir hier?
Ah, ich verstehe! Die Mehrdeutigkeit kam von global_output ['Ranking']. Quantile ([0.5]). Dies löst das Problem sehr gut. Danke auch für die wirklich hilfreichen Vorschläge zum Maskieren! – Lodore66
Genau. Sie haben Recht - müssen Sie beide Skalare vergleichen. – jezrael