我正在尝试创建一个阴暗的旭日形图,但收到错误消息:“ dtype:对象,不是叶子”

问题描述

我正在尝试创建一个朝阳图,其中不同的行具有不同的长度,并得到错误消息“ dtype:object,不是叶子”。 我已经读过这个``请注意,None条目的父母必须是叶子,即除None之外,它不能有其他孩子(否则会引发ValueError)。在https://plotly.com/python/sunburst-charts/#rectangular-data-with-missing-values的阴暗页面上,但并没有完全理解。

我有一个更大的数据集,但是与此相同的是:

testdf = pd.DataFrame(
[['Max',10,'M','a','x',None],['Ma',5,None,['Johan',6,'J','o','h','a']],index=[1,2,3],columns=['First_Name','Count','b','c','d'])
testdf

fig=px.sunburst(testdf,path=['a','d'],values='Count')
fig.show()

ValueError是这样的:

ValueError :(“在数据帧\ n中不允许非叶子行,M a c
d
名称:1,dtype:对象,“不是叶子。”

所以我认为这是由于字母a不是叶子的缘故,因为第一行的x也附加在叶子上,但是我想让森伯斯特停在第二行的字母a处,在第一行的字母x处。 任何帮助将不胜感激!

解决方法

在此进行解释:https://community.plotly.com/t/sunburst-chart-cant-handle-none-values/35383

基本上,如果您具有None值,则其父项必须是唯一的。在您的示例中,第一行有效。第二个原因不是因为["M","a",None,None]["M","x",None]共享相同的父项。

实际上,如果您运行以下命令,它将起作用。

testdf = pd.DataFrame([
    ['Max',10,'M','a','x',None],['Ma',5,'d',['Johan',6,'J','o','h','a']],index=[1,2,3],columns=['First_Name','Count','b','c','d'])

testdf

fig = px.sunburst(testdf,path=['a','d'],values='Count')