2017-02-22 2 views
0

Ich befülle eine neue Spalte in einem Pandas DataFrame mit einem Wert für jede Zahl in einer Liste.make value_counts() gibt 0 zurück, wenn der Wert nicht auftritt

test_scores_series['Label_{}'.format(choices[i])] = test_scores_series.apply(lambda y: y.value_counts() , axis=1)[choices[i]] 

Nun, wenn Entscheidungen [i] = 10 oder jeder beliebige Wert, der in der aktuellen Spalte nicht erscheint, erhalte ich einen KeyError für diesen Wert!

Wie ich verstehe, gibt value_counts() nur Zählungen zurück, solange sie nicht null sind. Wie umgehe ich den KeyError und gebe eine Null an, wenn der Wert nicht gefunden wird?

Dies ist kein Duplikat von Fragen zum Wörterbuch. Es ist eine pandasspezifische Frage. Offenbar würden Pandas in einer älteren Version die Schlüssel auch mit Nullzählern zurückgeben, und das passiert nicht mehr.

Antwort

0

Wenn Auswahl ein Wörterbuch versuchen

choices.get(i, 0) 

seine Falls nicht, können Sie bitte vielleicht choices.head() von dem, was Ihr Datenrahmen aussieht?

0

Ich denke, was Sie wollen, ist

test_scores_series.apply(lambda y: y.value_counts() , axis=1).get(choices[i], 0) 
Verwandte Themen