Создание списка списков из фрейма данных на основе условия - PullRequest
0 голосов
/ 03 августа 2020

я работаю с некоторыми финансовыми данными, и я хочу создать список списков при итерации через df, и определенное условие выполняется

например: df

        25 Day   250 Day
Date                          
2001-12-07  1.4  1.5
2001-12-10  1.6  1.7
2001-12-11  1.8  1.2
2001-12-12  1.4  1.5
2001-12-13  1.4  1.6

Я хочу l oop по строкам и составьте список, когда 25 дней <250 дней. Это состояние является прерывистым и может длиться несколько строк за раз, прежде чем исчезнет. Я хочу в конечном итоге использовать эти данные для построения чего-либо на графике. </p>

В приведенном выше примере я должен получить следующее: [[2001-12-07, 2001-12-10], [2001-12- 12,2001-12-13]]

В настоящее время я использую следующее для перебора строк и получения списка всех значений, но не знаю, как бы поместить все непрерывные значения внутрь отдельные списки

def get_Date():
    global date_Buy
    x = []
    date_Buy = [[x]]
    for i, value in master_Data.iterrows():
        if value['25 Day'] < value['250 Day']:
            x.append(i)
        else:
            continue
            date_Buy.append(x)
get_Date()

По сути, я хотел бы начинать новый список каждый раз, когда запускается продолжение

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Вы можете фильтровать, используя query, а затем преобразовывать каждую строку в список, используя agg:

lst = df.query("Day_25 > Day_250").reset_index().agg(list, 1).tolist()

print(lst)

[['2019-03-31', 920, 2],
 ['2018-01-02', 920, 4],
 ['2018-01-02', 921, 600],
 ['2019-04-31', 921, 7],
 ['2018-01-02', 921, 8]]
0 голосов
/ 03 августа 2020

Хотите что-то подобное?

import pandas as pd

df = pd.DataFrame({'Date': ['2018-01-02', '2019-03-31', '2019-03-31', '2018-01-02', '2018-01-02', '2019-04-31',
                            '2018-01-02'],
                   'Day_25': [1, 920, 920, 920, 921, 921, 921],
                   'Day_250': [100, 2, 3000, 4, 600, 7, 8]})

index_greater=df[df.Day_25 > df.Day_250].index
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...