python - 如何将列名应用于通过 DataFrame.value_counts() 创建的 Pandas 系列

标签 python pandas dataframe d3py

我有以下 pandas Series(这实际上是在特定列上运行 value_counts() 的输出 - “Tipo de vivienda” - 数据框:

enter image description here

借助 Seaborn、Bokeh 等可视化库,我可以直接在该系列上形成条形图,无需额外的争论或转换。还为 d3py ,条形图只能从 DataFrames 生成(我相信)。所以我将该系列转换为 DataFrame:

enter image description here

然后我开始绘制条形图:

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/

相关文章:

python - 使用 Conda 安装 OpenCV

python - python 是否有一个内置函数可以为 None 获取 0

python - 计算 Pandas 数据框中每个特定单词的出现次数

python - 如何处理阿拉伯语中的重复字母

python - 将 Pandas 系列单元格转换为字符串和日期时间对象

python - 如何更改 Pandas 数据框索引值?

python - Pandas read_csv 更改以 0 开头的列

scala - 将 Spark 数据帧插入 hbase

python - 如何在 Python 中添加包含字典值的列

python - 使用 ScikitLearn 的多元线性回归,不同的方法给出不同的答案