создать pandas фрейм данных, затем обновить только последний день / строку без вызова (ie опускания) первой части функции - все в одном операторе - PullRequest
0 голосов
/ 06 мая 2020

Как видно из названия, я даже не знаю, как сформулировать вопрос. : D

Но вот оно, "проще говоря": I) Я хотел бы создать df в день x и II) со следующего дня и далее x + 1 ... x + n Я бы хотел обновить только день x + n, не касаясь первой части (I) создания df - и все это путем вызова только одной функции. Таким образом, в основном «просто» добавление строки для дня вызова функции (нет необходимости «воссоздавать» df, поскольку он уже существует. Есть ли возможность сделать это все в одном операторе?

Это будет выглядеть примерно так:

import pandas as pd

def pull_data():

    data = {'DATE': ['2020-05-01','2020-05-02','2020-05-03','2020-05-04'],
            'X': [400,300,200,100],
            'Y': [100,200,300,400]
            }

    df = pd.DataFrame(data, columns = ['DATE', 'X', 'Y'])

    return df

data_ = pull_data()

Допустим, я вызываю эту функцию 04.05.2020 -> но теперь, на следующий день, я хочу, чтобы она автоматически добавляла ТОЛЬКО 2020-05-05 без снова создать весь фрейм данных.

Имеет ли смысл весь мой вопрос / понятен ли он? Я был бы рад каждому вводу! :)

1 Ответ

1 голос
/ 06 мая 2020

На основе фрейма данных и целочисленного индекса вы можете добавить значение, используя форму фрейма данных с помощью loc:

from datetime import datetime

data_ = pull_data()
value_X = 0
value_Y = 1
data_.loc[data_.shape[0]] = [datetime.now().date(), value_X, value_Y]

data_

#   DATE    X   Y
# 0 2020-05-01  400 100
# 1 2020-05-02  300 200
# 2 2020-05-03  200 300
# 3 2020-05-04  100 400
# 4 2020-05-06  0   1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...