Python pandas cut:如何将分类标签转换为字符串(否则无法导出到Excel)?

Python pandas cut:如何将分类标签转换为字符串(否则无法导出到Excel)?,python,pandas,dataframe,export-to-excel,Python,Pandas,Dataframe,Export To Excel,我使用pandas.cut()将连续变量离散成一个范围,然后根据结果分组 由于无法找出错误所在,经过多次咒骂之后,我了解到,如果我不向cut()函数提供自定义标签,而是依赖默认值,那么输出将无法导出到excel。如果我尝试这样做: import pandas as pd import numpy as np writer = pd.ExcelWriter('test.xlsx') wk = writer.book.add_worksheet('Test') df= df= pd.Da

我使用pandas.cut()将连续变量离散成一个范围,然后根据结果分组

由于无法找出错误所在,经过多次咒骂之后,我了解到,如果我不向cut()函数提供自定义标签,而是依赖默认值,那么输出将无法导出到excel。如果我尝试这样做:

import pandas as pd
import numpy as np    

writer = pd.ExcelWriter('test.xlsx')
wk = writer.book.add_worksheet('Test')

df= df= pd.DataFrame(np.random.randint(1,10,(10000,5)), columns=['a','b','c','d','e'])
df['range'] = pd.cut( df['a'],[-np.inf,3,8,np.inf] )
grouped=df.groupby('range').sum()
grouped.to_excel(writer, 'Export')
writer.close()
我得到:

raise TypeError("Unsupported type %s in write()" % type(token))
TypeError: Unsupported type <class 'pandas._libs.interval.Interval'> in write()
which it took me a while to decypher.
raisetypeerror(“write()中不支持的类型%s%type(令牌))
TypeError:write()中不支持的类型
我花了一段时间才把它摘下来。
如果我确实指定了标签:

df['range'] = pd.cut( df['a'],[-np.inf,3,8,np.inf], labels =['<3','3-8','>8'] )
df['range']=pd.cut(df['a'],[-np.inf,3,8,np.inf],labels=['8']))
然后一切正常。 关于如何在不指定自定义标签的情况下处理此问题,有何建议?在我工作的初始阶段,我倾向于不分配标签,因为我仍然不知道我想要多少个箱子——这是一种反复试验的方法,每次尝试分配标签都会很耗时

我不确定这是否算是一个bug,但至少它看起来像是一个缺乏文档记录的烦恼

使用
astype(str)

在excel中输出:

range   a   b   c   d   e
(-inf, 3.0] 6798    17277   16979   17266   16949
(3.0, 8.0]  33150   28051   27551   27692   27719
(8.0, inf]  9513    5153    5318    5106    5412

df['range']=pd.cut(df['a'],[-np.inf,3,8,np.inf],labels=['8'])。astype(str)
问题是如何在不明确指定标签的情况下完成。你可以省去
标签,因为你还没有读过我的问题。如果我遗漏了标签,那么我就无法导出Excel-这就是问题所在!!我需要按照下面的答案进行astype(str),这正是我在第二条评论中建议的
range   a   b   c   d   e
(-inf, 3.0] 6798    17277   16979   17266   16949
(3.0, 8.0]  33150   28051   27551   27692   27719
(8.0, inf]  9513    5153    5318    5106    5412