Как я могу отобразить разницу в ценах, если у меня есть список, и моя функция подсчитывает разницу между каждыми двумя элементами и ничего не заглушает

#python #data-visualization #data-analysis

#python #визуализация данных #анализ данных

Вопрос:

 price=[[3117.02002, 3105.459961, 3135.659912, 3131.060059, 3128.810059, 3110.280029, 3137.389893, 3035.02002, 3143.73999, 3311.3701170000004, 3322.0, 3241.159912, 3048.409912, 3004.47998, 3036.149902, 3211.01001, 3162.780029, 3286.330078, 3207.040039, 3204.399902, 3176.399902, 3184.939941, 3217.01001, 3207.209961, 3272.709961, 3338.649902, 3363.709961, 3443.6298829999996, 3442.929932, 3286.649902, 3190.550049, 3195.689941, 3099.959961, 3199.199951, 3125.0, 3221.26001, 3148.72998, 3144.8798829999996, 3174.050049, 3095.1298829999996, 3019.790039, 2999.860107, 3128.98999, 2960.469971, 2954.909912, 3008.72998, 3078.100098]]

def f(a):
    for i in range(len(a):
        print(a[i]-a[i-1])
 

Комментарии:

1. Привет, не могли бы вы немного прояснить свой вопрос? Похоже, ваша функция уже вычисляет то, что вы хотите. Итак, каким именно будет ваш желаемый результат?

2. Ах, я вижу проблему, вероятно, потому, что вы начинаете с 0 в своем диапазоне. Что, если вы замените range(len(a)) на range(1, len(a)) ? будет ли это печатать результат, который вы хотели?

3. в range(len(a) (отсутствует паретезис) есть опечатка, и проблема в вашем подходе, как уже упоминалось, вы начинаете с неправильного индекса, ваш код ничего не рисует, потому что вы даже не вызываете функцию

Ответ №1:

Вы можете получить список с помощью этого кода.

     dif_list = []
def dif(price,dif_list):
    i = price[0]
    for j in price[1:]:
        diff = j-i 
        dif_list.append(diff)
        i = j

    return dif_list

dif_list = dif(price,dif_list)
 

И вы можете использовать pandas dataframes и matplotlib.pyplot для рисования ваших данных.
Я не видел никаких усилий для решения проблемы, поэтому, пожалуйста, попробуйте нарисовать.

Ответ №2:

Было бы довольно просто использовать pandas:

 import pandas as pd
df = pd.DataFrame(price, columns=['price'])
df.diff(periods=1).plot()
 

введите описание изображения здесь