2017-06-13 105 views
0
id date  load   Instant DayType Month Day sort 
0 2013-02-02 4667.341595 46  6  2  2 4667.341595 
1 2013-02-02 4620.702889 47  6  2  2 4620.702889 
2 2013-05-12 -4439.333624 3  0  5  12 4439.333624 
3 2013-05-12 -4409.947044 4  0  5  12 4409.947044 
4 2013-05-12 -4369.322473 5  0  5  12 4369.322473 

您好我有一个函数RMSE:情节:由多个colmuns组大熊猫

def RMSE2(x): 
    return(np.sqrt(np.mean(x**2))) 

负荷是我们的X我想绘制的RMSE每个瞬间的每一天类型的回报是不是意味着我要在x瞬间和y中返回我的函数和7个不同的情节(每种情态的情节)。

+0

请修改的问题,最后一条语句是模糊的。 – suvy

+0

谢谢你我找到解决方案 –

+0

如果你发现解决方案,请在这里发布答案,在stackoverflow的精神,它可能会帮助其他人。 – suvy

回答

0
columns = np.unique(final.DayType) 
b = [] 
for i in columns: 
    daytype = final[final['DayType'] == i] 
    a = daytype[['load']].groupby(daytype['Instant']).apply(RMSE2) 
    b.append(a) 


import matplotlib.pyplot as plt 
plt.xticks(rotation=70) 
fig_size = plt.rcParams["figure.figsize"] 
fig_size[0] = 8 
fig_size[1] = 8 
for i in range(9): 
    x = range(48) 


    y = b[i]['load'] 
    plt.plot(x,y) 

    plt.ylabel("Rmse") 
    plt.xlabel("Day") 

    plt.legend(range(9),loc="upper left", bbox_to_anchor=[0, 1], 
      ncol=2, shadow=True, title="Legend", fancybox=True) 




plt.show() 
0

这是你想要的吗?

df.groupby('DayType')['load'].apply(lambda x:np.sqrt(np.mean(x**2))) 

输出:

DayType 
0 4406.294544 
6 4644.080789 
Name: load, dtype: float64 
+0

谢谢我发布了answr –