如何使用数据框中的“ if”语句更新字典中的值?

时间:2019-03-13 09:04:22

标签: python dataframe dictionary

我正在处理供求表,该表计算每个月每个点的存储量。如果某一点的存储容量超过92,则清空存储,然后将92个单元“传输”到另一点。然后,此时的存储容量再次为0,并开始累加单位。在我的情况下,我想将“运走”的92个单位存储在字典中。

我已经为Excel工作表编写了代码(工作正常),但是现在我想改为使用数据框。但是,我无法使用数据框正确更新字典中的值。

我已经尝试过了:

#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}

这只会给字典添加92的1倍,但是我希望每当一行中的值超过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 个答案:

答案 0 :(得分:2)

可能是一个小错误,您需要使用WWTP['Mar'] += 92而不是WWTP['Mar']=+92