python - Dataframe - Pandas - 如何绘制两个数据框的相同列以可视化差异
问题描述
有两个数据框
df1
+-----+-----+-------+
| | id | price |
+-----+-----+-------+
| 1 | 1 | 5 |
+-----+-----+-------+
| 2 | 2 | 12 |
+-----+-----+-------+
| 3 | 3 | 34 |
+-----+-----+-------+
| 4 | 4 | 62 |
+-----+-----+-------+
| ... | ... | ... |
+-----+-----+-------+
| 125 | 125 | 90 |
+-----+-----+-------+
和
df2
+-----+-----+-------+
| | id | price |
+-----+-----+-------+
| 1 | 1 | 14 |
+-----+-----+-------+
| 2 | 2 | 15 |
+-----+-----+-------+
| 3 | 3 | 45 |
+-----+-----+-------+
| 4 | 4 | 62 |
+-----+-----+-------+
| ... | ... | ... |
+-----+-----+-------+
| 125 | 125 | 31 |
+-----+-----+-------+
我想要一个在 X 轴上显示两个价格列并在 Y 轴上显示总和的图,以查看这两个数据框之间的差异。
我尝试了以下但什么也没做。
line1 = df1.plot.line()
line2 = df2.plot.line()
lines = df.plot.line(x=df1['price'], y=df2['price']
在这两个数据框中显示两种价格模式之间差异的最佳方式是什么?
我想到了类似的东西,但如果有更好的方法来显示差异,请提及。
解决方案
真的不清楚您所说的“X 轴上的价格列和 Y 轴上的总和”是什么意思。
由于您的 id 相同,您可以像这样绘制它们:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(221)
df1 = pd.DataFrame({'id':np.arange(125),
'price':np.random.randint(1,10,125)})
df2 = pd.DataFrame({'id':np.arange(125),
'price':np.random.randint(10,20,125)})
fig,ax = plt.subplots()
ax.plot(df1.price,label="df1")
ax.plot(df2.price,label="df2")
ax.legend()
推荐阅读
- xcode - 无法在终端 macOS 10.15.7 上安装 cocoapods
- tensorflow - 为什么在张量流中应用 model.fit 时出现“'NoneType' object is not callable”错误?
- python - 为什么这个简单的输入代码会给出“SyntaxError: invalid syntax”?
- html - CSS / R闪亮:删除导航栏下方的填充
- c# - 将表加入实体框架中的列表
- python - 为什么我的 Django 应用程序无法读取环境变量集?
- python - 比较合并表中的多个列时出现 TypeError
- python - 如何让 demand_callback 考虑依赖于 ortools 中 to_node 的变量?
- android - 反应本机颜色问题
- parameters - 有没有办法将 Quicksight 电子邮件报告更新到今天的日期?