熊猫数据框分组列的一列差异图

时间:2019-07-08 08:53:35

标签: python python-3.x pandas pandas-groupby

我有一个数据框,下面是一个简化示例:

   cycle  sensor  value
0      0       1   0.34
1      0       1   0.80
2      0       2   0.12
3      0       2   0.62
4      1       1   0.01
5      1       1   0.75
6      1       2   0.06
7      1       2   0.02

我想绘制每个传感器在每个周期的“值”列的差值:以x轴为周期数,以y轴为值差,每个序列将是给定的传感器数。例如传感器0的线在周期0和1时分别为0.46和0.74。

实际上,我有更多列(我的代码的这一部分未使用),并且有144个循环和37个循环。每个传感器每个周期有数千个值。

这是我编写的代码,没有出现错误:创建了一个图形,但没有显示数据。

groups = unstacked_data.groupby(["cycle", "pressure"])

fig,ax = plt.subplots()
ax.set_xlabel("Cycle Number")
ax.set_ylabel("Change in Normalised Pressure")


for cycle, group in groups:
        ax.plot(cycle[0],group.value.max()-group.value.min(), label=group.pressure)

我不确定自己在做什么错,任何建议都将不胜感激! :)

1 个答案:

答案 0 :(得分:1)

好吧,我想现在我明白了。结果应该是这样吗?

diff = df.groupby(["sensor","cycle"]).apply(lambda x:x.value.max()-x.value.min()).unstack()

#Output: each value in the table is max-min. Columns are cycles and rows are sensors
    cycle   0         1
sensor      
1          0.46     0.74
2          0.50     0.04

现在您可以按行,即按传感器进行绘制。