Как обновить значения в словаре, используя операторы if из фрейма данных? - PullRequest
0 голосов
/ 13 марта 2019

Я работаю над таблицей спроса / предложения, которая рассчитывает объем хранения каждой точки каждый месяц. Если емкость хранилища превышает 92 в одной точке, память освобождается, и 92 единицы «транспортируются» в другую точку. После этого емкость хранилища в этот момент снова равна 0, и она начинает накапливать единицы. В моем случае я хочу сохранить 92 словаря, которые «вывезены» в словаре.

Я написал код для листа Excel (который отлично работает), но теперь я хочу работать с Dataframe. Однако мне не удается правильно обновить значения в моем словаре с помощью Dataframe.

Я пробовал это:

#Dictionary
WWTP = {'Mar':0,'Apr':0,'Mai':0,...., 'Feb':0}

for row in df.iteritems():
df['Mar']= df['Supply_month']+ 30
for key, value in WWTP.iteritems():
    if [df.Mar >= 92]:
        WWTP['Mar']=+92
....(more code)

Результат, который я получаю, таков.

WWTP = {'Mar':92,'Apr':92,'Mai':92,...., 'Feb':92}

Это добавляет только 1 раз к 92 словарю, однако я хочу, чтобы оно добавляло 92 каждый раз, когда значение в одной строке превышает 92. Я бы хотел получить следующие результаты:

WWTP={'Mar': 92, 'Apr': 184, 'Mai': 1012,...,'Feb':2000}

Это код, который у меня есть на данный момент, в котором словарь обновляется, но не правильно, как я хочу:

WWTP = {'Mar':0,'Apr':0,'Mai':0,...., 'Feb':0}

for row in df.iteritems():           
    df['Apr']= df['Mar']+df['Supply_month']
    if [df.Apr >= 92]:
         WWTP['Apr']+=92
         df['Apr']=df['Supply_month']
    else:
         WWTP['Apr']+=0
(...)

Результат, который я получаю:

  WWTP={'Mar': 1350, 'Apr': 1350, 'Mai': 1350,...,'Feb':1350}

1 Ответ

2 голосов
/ 13 марта 2019

возможно маленькая ошибка, вам нужно WWTP['Mar'] += 92 вместо WWTP['Mar']=+92

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...