网站首页Python相关

"unsupported type pandas._libs.interval.Interval"报错

发布时间:2017-11-06编辑:fc不将就阅读(1403

        pandas版本为0.20+,当保存category类型数据到excel会报错,报错信息为TypeError: Unsupported type <type 'pandas._libs.interval.Interval'> in write().而同样的代码在pandas0.19版本中并不会报错,查看源码后发现后续对值的类型进行了判断,里面只包含了str,int,float,bool等常规类型,不包含“pandas._libs.interval.Interval”类型。解决的办法是将category类型数据转化为str类型.

        错误重现代码:

    import pandas as pd
    print(pd.__version__)
    
    s=pd.Series([1,2,3,4,5,6,7,8])
    c=pd.cut(s,bins=3)
    c.to_frame()
    print(c.to_frame().dtypes)
    c.to_frame().to_excel("1.xlsx")
    
    
    site-packages/xlsxwriter/worksheet.pyc in write(self, row, col, *args)
        431             pass
        432         except TypeError:
    --> 433             raise TypeError("Unsupported type %s in write()" % type(token))
        434
        435         # Finally try string.
    
    TypeError: Unsupported type <type 'pandas._libs.inter

    解决办法:

    import pandas as pd
    print(pd.__version__)
    
    s=pd.Series([1,2,3,4,5,6,7,8])
    c=pd.cut(s,bins=3)
    c.to_frame()
    print(c.to_frame().dtypes)
    c.astype(str).to_frame().to_excel("a.xlsx")