在具有部分重叠的y值的数据框中绘制列的每个唯一元素

时间:2016-10-16 11:42:44

标签: python pandas

我希望我能够正确解释这一点,因为我是熊猫新手。我在pandas中有以下数据框。

import numpy as np
plant1 = {'Date' : pd.date_range('1/1/2011', periods=10, freq='D'),
     'Plant' : pd.Series(["Plant1"]*10),
     'Output' : pd.Series(abs(np.random.randn(10)))}

plant2 = {'Date' : pd.date_range('1/3/2011', periods=10, freq='D'),
     'Plant' : pd.Series(["Plant2"]*10),
     'Output' : pd.Series(abs(np.random.randn(10)))}

plant3 = {'Date' : pd.date_range('1/5/2011', periods=10, freq='D'),
     'Plant' : pd.Series(["Plant3"]*10),
     'Output' : pd.Series(abs(np.random.randn(10)))}     



df_plant_1 = pd.DataFrame(plant1)
df_plant_2 = pd.DataFrame(plant2)
df_plant_3 = pd.DataFrame(plant3)

sample = pd.concat([df_plant_1,df_plant_2,df_plant_3])

我的输出是每个工厂的面积图和相应的y值(输出)和x值(日期)。请注意"日期"只是部分重叠。

我一直在寻找一种有意义地组织我的数据的方法。第一个挑战是将数据合并为重复"日期" -Values。下一步是用.fillna()填充系列中产生的漏洞。最后一步是绘制每个独特的" Plant" -value。

然而,我已经陷入了第一步。我知道.merge函数,但不知道如何将它应用于这种情况。

感谢您的时间和考虑。

1 个答案:

答案 0 :(得分:0)

聊天中的用户让我了解了枢轴功能。

test = pd.pivot_table(sample, index='Date', columns='Plant', values='Output')
test = test.fillna(method='pad')                            
test = test.fillna(method='bfill')        

plt.figure(); test.plot(kind='area')

enter image description here