使用for循环和pd.dataframe乘以列

时间:2019-04-01 20:11:43

标签: python pandas dataframe for-loop

我无法创建一个新的数据表来显示年度能源使用数据。基本上,我想将能源乘以不同的因子来显示年度能源使用量。
代码如下。

#calculate energy amounts

energy_use_by_fuel = pd.DataFrame()
for hhid in energy_data.hhid.unique(): 
    tempdtf = pd.DataFrame({
       'hhid':hhid, 
       'monthly_electricity': energy_data.loc[energy_data.hhid == hhid, 'estimated_kwh_monthly']*3, 
       'monthly_gas': energy_data.loc[energy_data.hhid == hhid, 'monthly_gas_use_kg'] * 4,
       'monthly_charcoal': energy_data.loc[energy_data.hhid == hhid, 
       'monthly_charcoal_use_kg'] * 5})

    #join
    tempdtf = energy_use_by_fuel.append(tempdtf, ignore_index = True)

如您所见,我想计算电力,天然气和木炭的不同能源使用量。但是,当我将数据乘以数字时,结果数据帧energy_use_by_fuel为空。

1 个答案:

答案 0 :(得分:0)

函数df.append()确实返回了一个添加了DataFrame的新对象,因此我认为您的代码设置了错误的变量。

#join
energy_use_by_fuel = energy_use_by_fuel.append(tempdtf, ignore_index = True)