使用pivot_tab时未获取要聚合的数值类型错误

2024-10-01 13:36:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这应该很容易,但我总是在尝试转向时出错。我从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'])

这里是东西停止工作的地方。。。在

^{pr2}$

结果通过720的错误项目数,放置意味着2

这让我想到了{a1},这让我做了这件事

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

这告诉我“没有要聚合的数值类型”

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


Tags: columns数据nodedataframepandasexecuteindextable
1条回答
网友
1楼 · 发布于 2024-10-01 13:36:35

有两个更改可以使其工作:

  • 首先不要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')

相关问题 更多 >