Debug: django model querysets-> pandas.Dataframe
来源:互联网 发布:养车软件哪个好 编辑:程序博客网 时间:2024/06/03 20:41
问题描述
在使用Django 的ORM model时,有时需要将数据导出并转变成pandas DataFrame。正常的流程应该是:
import pandas as pdfrom model import testeModeldata = testModel.objects.values()# .values()返回的是[object1,object2]df = pd.DataFrame(data)
但是系统一直会报错,出错信息如下:
Traceback (most recent call last)/usr/local/lib/python3.4/dist-packages/pandas/core/frame.py in __init__(self, data, index, columns, dtype, copy) copy=False)else: raise ValueError('DataFrame constructor not properly called!')ValueError: DataFrame constructor not properly called!
解决方案
虽然报的是值错误,很容易让人以为是data数据错误。
更隐晦的是即时数值格式都正确,还是会报上述错误,调试后发现这个ValueError错误指的是传入的data数据的格式。一直以为是list(例如[{‘name’:’hello’},{‘name’:’world’}]),毕竟print出来就是这个样子,其实testModel.objects.values()返回的实际类型是:
<class 'django.db.models.query.ValuesQuerySet'>
而这个ValuesQuerySet也支持python的for…in…遍历操作,这就是很容易遗漏的地方。知道后简单的格式转换就可以解决:
import pandas as pdfrom model import testeModel# successdata = testModel.objects.values()df = pd.DataFrame(list(data))
阅读全文
0 0
- Debug: django model querysets-> pandas.Dataframe
- Using Django querysets effectively
- Pandas DataFrame
- Pandas(DataFrame)
- pandas-dataframe
- 有效使用Django的QuerySets
- 有效使用Django的QuerySets
- 有效使用Django的QuerySets
- Django ORM返回QuerySets的某些函数
- django QuerySets结果集是延迟的
- django的sql返回结果QuerySets
- pandas.DataFrame.any与pandas.DataFrame.all
- Pandas之DataFrame操作
- Pandas.Dataframe使用小结
- Pandas之Dataframe操作
- pandas.DataFrame 操作
- Pandas学习:DataFrame
- pandas.DataFrame.to_csv
- mysql账户管理
- 堆和优先队列
- 【TensorFlow】MNIST(使用CNN)
- 【软考】区分网桥,路由器的区别
- HTML(一)
- Debug: django model querysets-> pandas.Dataframe
- Node.js —— 创建TCP服务器
- Java日记
- 【OVS2.5源码解读】datapath的netlink机制
- CNN中感受野的计算
- #随笔之java匿名内部类
- [LeetCode]338. Counting Bits
- 【JavaScript】引擎、运行时
- U-Mail:优秀的linux邮件系统