我有以下pandas Series
(实际上是在某列上运行value_counts()
的输出 - " Tipo de vivienda" - DataFrame
:
使用Seaborn,Bokeh等可视化库。我可以在此系列中直接形成条形图,无需额外的争吵或转换。然而对于d3py,条形图只能从DataFrames生成(我相信)。所以我将系列转换为DataFrame
:
然后我开始绘制条形图:
p = d3py.PandasFigure(v_as_df)
此时,我需要告诉d3py我想要一个条形图。我还需要告诉它列的标题,这就是事情发生的地方。致电v_as_df.columns()
告诉我:
Index([u'Tipo de vivienda'], dtype='object')
有点猜测列名是什么,我试试:
p += d3py.Bar('', 'Tipo de vivienda') # x, y
...但是当我拨打p.show()
时没有显示任何内容,我猜它是因为我没有真正的DataFrame
,而是{{1}这样就是这样的。
在Series
上调用DataFrame()
的方法是错误的吗?
答案 0 :(得分:1)
我不认为将系列视为DataFrame会产生任何问题。
然而这看起来不对
p += d3py.Bar('', 'Tipo de vivienda') # x, y
空字符串可能是错误的来源。
您的DataFrame由一个索引(' casa')和一列(' Tipo de vivienda')
组成您为x
参数传递了一个空字符串,因此d3py会查找名称为'',未找到并失败的列。
解决方案: 1.检查d3py的文档,并找到如何将索引作为图表的值传递 2.执行以下操作:
v_as_df = v_as_df.reset_index() # Transform your index into a column
print v_as_df.columns
### WILL output something like :**['index', 'Tipo de vivienda']**
then :
p = d3py.PandasFigure(v_as_df)
# adapt *'index'* with whatever you get from printing v_as_df.columns above
p += d3py.Bar('index', 'Tipo de vivienda')