我有以下 pandas Series
(这实际上是在特定列上运行 value_counts()
的输出 - “Tipo de vivienda” - 数据框
:
借助 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
,而是一个 Series
这样类型转换的。
在 Series
上调用 DataFrame()
是错误的方法吗?
- python :2.7.11
- Pandas :0.18.0
最佳答案
我不认为将 Series 转换为 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')
关于python - 如何将列名应用于通过 DataFrame.value_counts() 创建的 Pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36320974/