Django&熊猫:获取数据框中的选择值而不是选择标签

时间:2018-05-02 19:06:45

标签: django python-3.x django-pandas

再次提出有关django ......和pandas的问题。

我正在尝试将两个“选择”列的值放入pandas数据帧中;但是,我只是得到了选择的标签。

示例代码:

程序my_app / models.py

class Entry(models.Model):
    STATUS_ONE = 1
    STATUS_TWO = 2

    STATUS_CHOICES = (
        (STATUS_ONE, 'Status one'),
        (STATUS_TWO, 'Status two')
    )

    status = models.IntegerField(choices=STATUS_CHOICES, default=STATUS_ONE)
    status_date = models.DateTimeField(auto_now=True)
    contents = models.TextField()

我得到的数据:

from django_pandas import read_frame
from my_app.models import Entry
qs = Entry.objects.all()
df = read_frame(qs)
df
#      status                 status_date        contents
#  Status one   2018-04-30 20:00:00+00:00   Test contents
#  Status two   2018-04-30 21:00:00+00:00   More contents

我想得到的是:

#      status                 status_date        contents
#           1   2018-04-30 20:00:00+00:00   Test contents
#           2   2018-04-30 21:00:00+00:00   More contents

有办法搞定吗?

2 个答案:

答案 0 :(得分:1)

我知道了!

我只需要将{strong> verbose=False 选项添加到read_frame,就是这样:

df = read_frame(qs, verbose=False)

答案 1 :(得分:0)

我很确定你因为STATUS_CHOICES而得到了这个。以下内容:

def Entry(models.Model):
    STATUS_ONE = 1
    STATUS_TWO = 2

    STATUS_CHOICES = (
        (STATUS_ONE, '1'),
        (STATUS_TWO, '2')
    )

或者,您是否尝试过将其作为一个类而不是一个函数?例如,

class Entry(models.Model):
    STATUS_ONE = 1
    STATUS_TWO = 2

    STATUS_CHOICES = (
        (STATUS_ONE, 'Status one'),
        (STATUS_TWO, 'Status two')
    )