DataFrame 构造函数未正确调用!错误

新手上路,请多包涵

我是 Python 的新手,在以键和值的格式创建 Dataframe 时遇到问题,即

data = [{'key':'\[GlobalProgramSizeInThousands\]','value':'1000'},]

这是我的代码:

 columnsss = ['key','value'];
query = "select * from bparst_tags where tag_type = 1 ";
result = database.cursor(db.cursors.DictCursor);
result.execute(query);
result_set = result.fetchall();
data = "[";
for row in result_set:
`row["tag_expression"]`)
    data +=  "{'value': %s , 'key': %s }," % ( `row["tag_expression"]`, `row["tag_name"]` )
data += "]" ;
df = DataFrame(data , columns=columnsss);

但是当我将数据传递给 DataFrame 它显示了我

pandas.core.common.PandasError:未正确调用 DataFrame 构造函数!

而如果我打印数据并将相同的值分配给数据变量,那么它就可以工作。

原文由 Ravi khatri 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 439
2 个回答

您正在向 DataFrame 构造函数提供字典的 字符串 表示形式,而不是字典本身。所以这就是您收到该错误的原因。

所以如果你想使用你的代码,你可以这样做:

 df = DataFrame(eval(data))

但最好不要首先创建字符串,而是直接将其放入字典中。大致是这样的:

 data = []
for row in result_set:
    data.append({'value': row["tag_expression"], 'key': row["tag_name"]})

但可能甚至不需要,因为取决于您的 result_set 中的内容,您可能会:

  • 将其直接提供给 DataFrame: DataFrame(result_set)
  • 或使用 pandas read_sql_query 函数为您执行此操作(请参阅相关 文档

原文由 joris 发布,翻译遵循 CC BY-SA 3.0 许可协议

刚遇到同样的错误,但上面的答案对我没有帮助。

我的代码在我的电脑上运行良好,就像这样:

 test_dict = {'x': '123', 'y': '456', 'z': '456'}
df=pd.DataFrame(test_dict.items(),columns=['col1','col2'])

但是,它在另一个平台上不起作用。它给了我与原始问题中提到的相同的错误。我通过简单地在字典项周围添加 list() 来尝试下面的代码,并且它在之后顺利运行:

 df=pd.DataFrame(list(test_dict.items()),columns=['col1','col2'])

希望这个答案可以帮助遇到像我这样的人。

原文由 dayaoyao 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题