精华内容
下载资源
问答
  • pandas打印表格输出时不能对齐 列名用了中文的缘故,设置pandas的参数即可,代码如下: import pandas as pd #这两个参数的默认设置都是False pd.set_option('display.unicode.ambiguous_as_wide', True) ...

    用pandas打印表格输出时不能对齐

    列名用了中文的缘故,设置pandas的参数即可,代码如下:

    	 import pandas as pd
    	 #这两个参数的默认设置都是False
    	 pd.set_option('display.unicode.ambiguous_as_wide', True)
    	 pd.set_option('display.unicode.east_asian_width', True)
    
    展开全文
  • Python Pandas DataFrame 表格 打印输出不能对齐的两种解决方案 pd.set_option('display.unicode.ambiguous_as_wide', True) pd.set_option('display.unicode.east_asian_width', True)

    Python Pandas DataFrame 表格 打印输出不能对齐的两种解决方案

    pd.set_option('display.unicode.ambiguous_as_wide', True)
    pd.set_option('display.unicode.east_asian_width', True)
    
    展开全文
  • pandas表格样式

    千次阅读 2020-01-05 22:37:47
    pandas表格样式 在juoyter notebook中直接通过df输出DataFrame时,显示的样式为表格样式,通过sytle可对表格的样式做一些定制,类似excel的条件格式。 df = pd.DataFrame(np.random.rand(5,4),columns=['A','B'...

    pandas之表格样式

    在juoyter notebook中直接通过df输出DataFrame时,显示的样式为表格样式,通过sytle可对表格的样式做一些定制,类似excel的条件格式。

    df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])
    s = df.style
    print(s,type(s))
    #<pandas.io.formats.style.Styler object at 0x000001CD7B409710> <class 'pandas.io.formats.style.Styler'>

     

    对表格创建样式有两种方式,都需要额外定义一个处理样式的函数

    ①df.style.applymap(func,*args,**kwargs):对DataFrame中的每一个元素都按照func的逻辑处理

     

    # 将小于0.2的值字体设置为红色,否则设置为黑色
    df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])
    def lt_red(val):
        if val<0.2:
            color = 'red'
        else:
            color = 'black'
    #     print(color)
        return ('color:%s'%color)
    df.style.applymap(lt_red)

    ②df.style.apply(func,axis=0,subset=**,*args,**kwargs):对DataFrame的行或列按照func的逻辑处理,axis默认为0按照列处理,1按照行处理。

     

    # 将A、C、D列中的每一列最大值背景颜色填充为黄色
    def highlight_max(s):
        is_max = s == s.max()
        l = []
        for v in is_max:
            if v:
                l.append('background-color:yellow')
            else:
                l.append('')
    #     print(l)
        return l
    df.style.apply(highlight_max,axis = 1,subset = ['A','C','D'])

     

           

     

    如果在style中需要同时进行行和列的切片,需要用到pandas的IndexSlice

    # 对索引为2-5行,列为A、C、D中的每一列最大值背景颜色填充为黄色
    df.style.apply(highlight_max,axis=1,subset = pd.IndexSlice[2:5,['A','B','C']])
    ## df.loc[2:5,['A','C']].style.apply(highlight_max,axis=1)也可以实现
    ## 上一种方法会显示所有的DataFrame内容,然后对满足条件的行和列做格式处理;而后一种方法是只显示满足条件的行和列,再做格式处理

        

     

     格式化DataFrame中的数值

    df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])
    # df.style.format('{:.2%}',subset=['B','C'])  #对所有符合条件的采用一种格式format,整个格式用''括起来
    df.style.format({'A':'{:.2f}','B':'{:%}','C':'{:+}','D':'{:.2%}'}) #对不同的列采用不同的format,参数为一个字典,key
    为列名,value为格式
    # A、B、C、D列的格式分别为2位小数、百分数、前面加+号,2位小数的百分数

     

    定位空值df.style.highlight_null(null_color='red'),对空值设置背景颜色

    对应还有highlight_max()和highlight_min(),参数(subset=None, color='yellow', axis=0)

    df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])
    df['B'][2] = np.nan
    df.style.highlight_null(null_color='red')

     

    色彩映射

    df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])
    df.style.background_gradient(cmap='Reds',axis = 1,low = 0,high = 1,subset = ['A','C','D'])
    # 按行处理,最小值对应颜色表中的最浅色,最大值对应颜色表中的最深色,1表示按行处理

     

     条形图

    df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])
    df.style.bar(width=100,subset=['A','C','D'],color='lightpink')

     

    分段式构建样式

    df.style.\
        bar(width=100,subset=['A'],color='lightpink').\
        highlight_max(axis = 1,color='red').\
        highlight_min(axis = 1,color='green')
    #除最后一行,每一行都以.\结尾

    展开全文
  • 最近在学数据分析,中英文混合的DataFrame表格会出现print()打印无法对齐的情况,导致输出的结果都没有对齐,十分不美观,也...

    最近在学数据分析,中英文混合的DataFrame表格会出现print()打印无法对齐的情况,导致输出的结果都没有对齐,十分不美观,也影响直观的分析。下面介绍两种解决方案,总有一款适合你:

    准备工作:为演示方便,通过导入excel的方式建立名为’stu’, ‘stu2’ 的两个DataFrame格式对象

    import pandas as pd
    stu = pd.read_excel('Data\studentsInfo.xlsx','Group1',index_col=0)
    stu.dropna(inplace=True)
    stu2 = pd.read_excel('Data\studentsInfo.xlsx','Group1',index_col=0)
    
      
    • 1
    • 2
    • 3
    • 4

    1.适用于纯文本输出print()函数的设置方法

    若在IDLE等纯文本输出的环境下,使用display()函数或print()函数都只能输出纯文本形式的表格,如下:

    在这里插入图片描述
    由于中英文混合的关系导致列没有对齐


    通过pd.set_option进行设置,代码如下:

    pd.set_option('display.unicode.ambiguous_as_wide', True)
    pd.set_option('display.unicode.east_asian_width', True)
    pd.set_option('display.width', 180) # 设置打印宽度(**重要**)
    print(stu)
    
      
    • 1
    • 2
    • 3
    • 4
    pd.set_option('expand_frame_repr', False) #数据超过总宽度后,是否折叠显示
    

    输出如下:
    在这里插入图片描述

    注意:如果打印宽度设置过小或保持默认,则有可能出现表格的列被强制换行的情形:
    在这里插入图片描述


    2.适用于JupyterNotebook的格式化的表格输出

    若在JupyterNotebook中直接输出DataFrame格式,则是有线框的HTML格式的表格
    代码如下:(以下代码均是JupyterNotebook的cell中运行的)

    stu
    
     
    • 1

    输出如下:(是一个HTML格式的表格)

    性别年龄身高体重省份成绩月生活费课程兴趣案例教学
    序号
    2male22.018071.0GuangXi77.01300.034
    4male20.017772.0LiaoNing79.0900.044
    6male20.017975.0YunNan92.0950.055
    7female21.016653.0LiaoNing80.01200.045
    8female20.016247.0AnHui78.01000.044
    9female20.016247.0AnHui78.01000.044
    10male19.016976.0HeiLongJiang88.01100.055

    但是这种方式无法同时在一个cell中显示两个表格,只显示最后一个表格
    代码如下:

    stu
    stu2
    
     
    • 1
    • 2

    输出如下:

    性别年龄身高体重省份成绩月生活费课程兴趣案例教学
    序号
    1male20.017070.0LiaoNingNaN800.054
    2male22.018071.0GuangXi77.01300.034
    3maleNaN18062.0FuJian57.01000.024
    4male20.017772.0LiaoNing79.0900.044
    5male20.0172NaNShanDong91.0NaN55
    6male20.017975.0YunNan92.0950.055
    7female21.016653.0LiaoNing80.01200.045
    8female20.016247.0AnHui78.01000.044
    9female20.016247.0AnHui78.01000.044
    10male19.016976.0HeiLongJiang88.01100.055

    为了在一个cell 输出多个表格,可以使用IPython.display,代码如下:

    from IPython.display import display
    display(stu)
    display(stu2)
    
     
    • 1
    • 2
    • 3

    输出如下:

    性别年龄身高体重省份成绩月生活费课程兴趣案例教学
    序号
    2male22.018071.0GuangXi77.01300.034
    4male20.017772.0LiaoNing79.0900.044
    6male20.017975.0YunNan92.0950.055
    7female21.016653.0LiaoNing80.01200.045
    8female20.016247.0AnHui78.01000.044
    9female20.016247.0AnHui78.01000.044
    10male19.016976.0HeiLongJiang88.01100.055
    性别年龄身高体重省份成绩月生活费课程兴趣案例教学
    序号
    1male20.017070.0LiaoNingNaN800.054
    2male22.018071.0GuangXi77.01300.034
    3maleNaN18062.0FuJian57.01000.024
    4male20.017772.0LiaoNing79.0900.044
    5male20.0172NaNShanDong91.0NaN55
    6male20.017975.0YunNan92.0950.055
    7female21.016653.0LiaoNing80.01200.045
    8female20.016247.0AnHui78.01000.044
    9female20.016247.0AnHui78.01000.044
    10male19.016976.0HeiLongJiang88.01100.055

    觉得有用的话,不要吝惜评论点赞分享哦,希望大家多多包涵,有任何问题欢迎指正、讨论。

                                    </div>
    
    展开全文
  • Pandas:表格样式

    2020-03-23 21:49:17
    文章目录表格样式创建对所有元素样式进行处理:applymap()按行/列处理样式:apply()样式索引、切片表格显示控制按照百分数...表格视觉样式:Dataframe.style → 返回pandas.Styler对象的属性,具有格式化和显示Dataf...
  • 今天小编就为大家分享一篇pandas dataframe添加表格框线输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • pandas爬取表格数据

    2020-02-20 17:57:43
    利用pandas 方法: 1、soup = BeautifulSoup(html.content, ‘lxml’, from_encoding=‘utf-8’) 2、pd.read_html() 请求天气后报的一些表格数据的方法: #!/usr/bin/env python # encoding: utf-8 """ @Time : ...
  • pandas获取表格行名、列名和数据一、读取excel表格二、读取行名三、读取列名四、只读取数据 一、读取excel表格 表格内数据如下: data = pd.read_excel('数据.xlsx') print(data) 输出结果如下: 二、读取行名 ...
  • 因为表格有中文的关系,输出默认居中对齐。 2.pandas显示设置 经过搜索学习大佬们的经验,通过添加如下代码,更改pandas的默认输出方式,可实现右对齐。 pd.set_option('display.unicode.east_asian_width',...
  • Pandas输出省略问题

    千次阅读 2019-09-10 11:48:32
    pandas 输出显示设置 **pandas.set_option(pat, value) **= <pandas._config.config.CallableDynamicDoc object> Available options: display.[max_categories, max_columns, max_colwidth, max_info_columns,...
  • 基于pandas表格型数据的读取操作 文章目录基于pandas表格型数据的读取操作读写文本格式的数据逐块读取文本文件将数据写出到文本格式JSON数据读取Microsoft Excel文件 读写文本格式的数据 pandas(关于pandas的...
  • ↑关注 + 星标~有趣的不像个技术号每晚九点,我们准时相约大家好,我是Sp4rkW今天给大家讲讲pandas读取表格后的一些常用数据处理操作。...
  • https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.io.formats.style.Styler.apply.html#pandas.io.formats.style.Styler.apply 主要函数: Styler.apply(self,func,axis=0,subset=None,...
  • pandas dataframe添加表格框线输出

    千次阅读 2019-01-09 23:57:05
    将dataframe添加到texttable里面,实现格式化输出。 data=[{"name":"Amay","age":20,"result":80}, {"name":"Tom","age":32,"result...
  • pandas DataFrame表格(列)拼接(concat,append,join,merge)

    万次阅读 多人点赞 2019-09-19 10:58:35
    pandas.merge是pandas的全功能、高性能的的内存连接操作 ,在习惯上非常 类似于SQL 之类的关系数据库。 merge (left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_...
  • pycharm 控制台 pandas输出控制

    千次阅读 2018-10-15 22:50:51
    打印pandas数据时,默认是输出100行,多的话中间数据会输出省略号。 在代码中添加以下两行代码,可以改变显示宽度和行数,这样就能完整地查看数据了。 为解决pandas 在控制台的显示不全的问题,一般可以设置: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,301
精华内容 4,120
关键字:

pandas输出表格