Kaggle notebook单cell运行多列求众数命令仅返回首个结果如何解决
原因
Kaggle Notebook 遵循 Jupyter 系列工具的默认规则:单元格运行时仅会打印最后一行表达式的返回结果,你写的中间几行众数计算代码仅会执行,不会自动输出。你现在看到的输出TV-MA,实际是最后一行data['rating'].mode()的运行结果,不是第一列的结果。
解决方法
方法1:给每一行计算语句加上
print(),强制打印输出
代码示例:print(data['director'].mode()) print(data['cast'].mode()) print(data['country'].mode()) print(data['date_added'].mode()) print(data['rating'].mode())方法2:批量计算后统一输出规整结果
如果你想把所有列的众数汇总成一张表查看,可以用apply批量计算:# 取每列的第一个众数,存在Series中直接打印即可 mode_res = data[['director', 'cast', 'country', 'date_added', 'rating']].apply(lambda x: x.mode()[0]) print(mode_res) # 如果某列可能存在多个众数,想要全部展示,可以改成以下写法 mode_res = data[['director', 'cast', 'country', 'date_added', 'rating']].apply(lambda x: list(x.mode())) print(mode_res)方法3:修改全局输出配置,无需修改原有计算代码
在单元格开头添加两行配置,即可让单元格内所有表达式的结果都自动打印:from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all" # 原有代码不用修改 data['director'].mode() data['cast'].mode() data['country'].mode() data['date_added'].mode() data['rating'].mode()
内容的提问来源于stack exchange,提问作者Mihir Sanjay
相关产品推荐
相关产品推荐

