我有一个数据框,下面是一个简化的示例:
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)
我不确定自己在做什么错,任何建议都将不胜感激! :)
最佳答案
好吧,我想现在我明白了。结果应该是这样吗?
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
现在您可以按行(即按传感器)对其进行绘制。
关于python - Pandas 数据框分组列的一列差异图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56931413/