【发布时间】:2021-11-16 23:33:17
【问题描述】:
让我们描述一下我的问题。
我从数据库中获取了大量数据。例如它看起来像:
d = [
{'Tag': 'Weight', 'Value': 15, 'Product': 'Apple', 'Year': 2019 },
{'Tag': 'Weight', 'Value': 14, 'Product': 'Apple', 'Year': 2020 },
{'Tag': 'Weight', 'Value': 16, 'Product': 'Apple', 'Year': 2021 },
{'Tag': 'Weight', 'Value': 30, 'Product': 'Banana', 'Year': 2019 },
{'Tag': 'Weight', 'Value': 32, 'Product': 'Banana', 'Year': 2020 },
{'Tag': 'Weight', 'Value': 31, 'Product': 'Banana', 'Year': 2021 },
{'Tag': 'Weight', 'Value': 120, 'Product': 'Papaya', 'Year': 2019 },
{'Tag': 'Weight', 'Value': 140, 'Product': 'Papaya', 'Year': 2020 },
{'Tag': 'Weight', 'Value': 130, 'Product': 'Papaya', 'Year': 2021 },
{'Tag': 'Price', 'Value': 0.23, 'Product': 'Apple', 'Year': 2019 },
{'Tag': 'Price', 'Value': 0.23, 'Product': 'Apple', 'Year': 2020 },
{'Tag': 'Price', 'Value': 0.24, 'Product': 'Apple', 'Year': 2021 },
{'Tag': 'Price', 'Value': 0.81, 'Product': 'Banana', 'Year': 2019 },
{'Tag': 'Price', 'Value': 0.83, 'Product': 'Banana', 'Year': 2020 },
{'Tag': 'Price', 'Value': 0.9, 'Product': 'Banana', 'Year': 2021 },
{'Tag': 'Price', 'Value': 2.31, 'Product': 'Papaya', 'Year': 2019 },
{'Tag': 'Price', 'Value': 2.29, 'Product': 'Papaya', 'Year': 2020 },
{'Tag': 'Price', 'Value': 2.41, 'Product': 'Papaya', 'Year': 2021 }
]
我用这个命令创建了一个数据框:
df = pd.DataFrame(data = d)
那么数据如下:
Tag Value Product Year
0 Weight 15.00 Apple 2019
1 Weight 14.00 Apple 2020
2 Weight 16.00 Apple 2021
3 Weight 30.00 Banana 2019
4 Weight 32.00 Banana 2020
5 Weight 31.00 Banana 2021
6 Weight 120.00 Papaya 2019
...
到目前为止一切顺利。现在我想对这个数据框进行排序和过滤以制作漂亮的图。例如,我想显示过去几年的价格(Tag == 'Price')。这意味着在我的 X 轴上我想拥有所有产品,在 y 轴上我有相应的价格。例如,我希望每年都有一个单独的数据集,并标有那一年。在此条形图中的示例中,我为每种产品获得 3 个条形,每个代表一年的价格。
使用 pandas 的最佳方法是什么?
目前我正在遍历所有数据,找到正确的数据并填充新数组,只是为了将新创建的数组放入我的绘图中。但这似乎不是理想的方式。
所以问题是,如何获得我的绘图轴?你是如何以最优雅的方式解决这个问题的?只用熊猫?可能吗?
我很兴奋,非常感谢
【问题讨论】:
标签: python pandas sorting plot grouping