如果未发生值,则使value_counts()返回0

时间:2017-02-22 02:52:37

标签: python pandas numpy

我在pandas DataFrame中填充一个新列,列表中每个数字的值都是。

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

现在,当choice [i] = 10或当前列中没有出现的任何值时,我得到该值的KeyError!

据我所知,value_counts()只返回计数,只要它们不为零。如果找不到值,如何绕过KeyError并归零?

这不是与字典相关的任何问题的重复。这是一个特定的熊猫问题。显然在旧版本中,大熊猫也会返回零计数的键,而且它不会再发生了。

2 个答案:

答案 0 :(得分:0)

如果选择是字典,请尝试

choices.get(i, 0)

如果不是,请问您可以choices.head()提供数据框的样子吗?

答案 1 :(得分:0)

我认为你想要的是

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