Pydroid3中df.style高亮DataFrame最大值无效的问题咨询
问题解答:Pydroid3中无法显示Pandas样式化DataFrame的解决办法
输出含义解释
你看到的 <pandas.io.formats.style.Styler object at 0x76f9790520> 就是Styler对象的默认字符串输出——Python直接打印对象时,会输出它的类型和内存地址。
电脑端像Jupyter Notebook这类环境会自动识别Styler对象,把它转换成带样式的HTML表格渲染出来,但Pydroid3的终端是纯文本环境,不支持HTML渲染,所以直接print只会显示对象本身,不会展示高亮效果。
在Pydroid3中显示样式化效果的方法
方法1:导出为HTML文件并打开
这是最可靠的方式,HTML能完整保留样式,安卓浏览器可以正常渲染:
import pandas as pd import webbrowser import os data = {'Column1': [10, 15, 8], 'Column2': [20, 5, 12], 'Column3': [7, 18, 9]} df = pd.DataFrame(data) df_styled = df.style.highlight_max(color='lightgreen') # 保存为HTML文件 html_file = 'styled_table.html' df_styled.to_html(html_file) # 调用系统浏览器打开文件 webbrowser.open('file://' + os.path.abspath(html_file))
运行后,Pydroid3会打开系统浏览器展示带高亮效果的表格。
方法2:纯终端文本标记最大值
如果不想依赖浏览器,只想在终端里区分出最大值,可以手动给最大值加标记:
import pandas as pd data = {'Column1': [10, 15, 8], 'Column2': [20, 5, 12], 'Column3': [7, 18, 9]} df = pd.DataFrame(data) # 遍历每列,给最大值添加*标记 for col in df.columns: max_val = df[col].max() df[col] = df[col].apply(lambda x: f'*{x}*' if x == max_val else str(x)) print(df)
终端输出会是这样的格式,能直观识别最大值:
Column1 Column2 Column3 0 10 *20* 7 1 *15* 5 *18* 2 8 12 9
内容的提问来源于stack exchange,提问作者Dr Brijesh K. Chaurasia
相关产品推荐
相关产品推荐

