python - 绘制熊猫数据框分组列的一列差异图
问题描述
我有一个数据框,一个简化的例子如下:
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 轴作为值的差异,每个系列都是给定的传感器编号。例如,传感器 1 的线在循环 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
现在您可以按行(即传感器)绘制它。
推荐阅读
- git - GIT 克隆分支与存储库的名称保持一致
- sql - 我们如何将表情符号保存在 SQL 数据库中以保留它们的唯一性以进行相等比较?
- php - Xdebug 不适用于正在运行或挂起的队列。但是当我刚开始排队时它就起作用了
- reactjs - 找不到模块:在反应中编译时无法解决“./Navbar”错误
- c++ - 像这样在类中使用 operator new 是否正确
- c# - .NET Core - 无法应用 RESTful API
- linear-regression - 如何在具有多个变化变量的线性回归中计算单个变量的百分比变化?
- winapi - 如何在 vb6 上获取多显示器的桌面窗口句柄(每个或整个)?
- python - 如何使用我的 .py 和 .env 文件修复此 Heroku 部署错误?
- r - 单击操作按钮刷新绘图时,有一个未刷新的表