使用pivot_table时,没有数字类型聚合错误

时间:2015-06-10 08:17:43

标签: python pandas

我知道这应该很简单但是在尝试转动时我一直都会遇到错误。我从psycopg2获取数据

cur.execute("select * from table")
arr=cur.fetchall()
pdres=pandas.DataFrame(arr, columns=['pricedate',hour', 'node','dart'])
pdres=pdres.set_index(['pricedate','hour','node'])

这是东西停止工作的地方......

pdres.pivot(index=['pricedate','hour'],columns='node',values='dart')

导致错误的项目数量达到720,放置意味着2

这让我this question导致我这样做

pandas.pivot_table(pdres, index=['pricedate','hour'], columns='node', values='dart')

这告诉我'没有要聚合的数字类型

这导致我http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.convert_objects.html,但我不确定它的正确语法(何时使用它),我甚至不知道我是否在正确的轨道上。

1 个答案:

答案 0 :(得分:0)

有两项变化可以让它发挥作用:

  • 首先不要set_index
  • 其次,请勿使用convert_objects。请使用astype

具体来说,以下工作:

cur.execute("select * from table")
arr = cur.fetchall()
pdres = pandas.DataFrame(arr, columns=['pricedate', 'hour', 'node', 'dart'])
pdres['dart'] = pdres['dart'].astype(float)
pdres = pandas.pivot_table(pdres, index=['pricedate','hour'], columns='node', values='dart')