Django - Queryset Dataframe - превращать десятичные дроби в числа с плавающей точкой - PullRequest
0 голосов
/ 25 марта 2019

Я превращаю набор запросов в фрейм данных. Дело в том, что тип элементов - «Десятичные знаки» (например: Десятичный знак («- 1800000.00»)). Я хотел бы, чтобы они превратились в обычные числа с плавающей точкой, чтобы я мог делать вычисления с ними.

Как я могу это сделать?

Спасибо всем !!

dataframe = pd.DataFrame(list(Item.objects.filter(item__slug=fundslug).values('date','amount')))

1 Ответ

0 голосов
/ 25 марта 2019

Вы хотите .astype("float")

Либо как

dataframe = pd.DataFrame([Item.objects.filter(
                                   item__slug=fundslug).values(
                                       'date','amount')]).astype("float")

или

dataframe = pd.DataFrame([Item.objects.filter(
                                   item__slug=fundslug).values(
                                       'date','amount').astype("float")])

Он должен делать то же самое в любом случае.

По умолчанию Pandas хранит свои значения в виде пустых массивов, поэтому, если .values('date','amount') не задает точные значения, которые вы хотите каким-либо образом из вызова вашего метода, вам, вероятно, это не нужно.

Кроме того, если вытолько возвращая дату и сумму, лучше объявить ее как DateTime, а не как число с плавающей точкой, поскольку это, вероятно, сэкономит вам вычислительное время в дальнейшем.Я бы также рекомендовал сделать дату индексом .

...