pandas DataFrame按tag分组独立绘制折线图出现AttributeError如何解决
报错原因
pandas的groupby对象迭代时返回的每个元素都是 (分组标签值, 对应分组的DataFrame) 格式的二元组,你代码里直接对整个元组调用plot方法,自然会触发属性不存在的报错。
正确实现代码
修改循环结构,把迭代返回的二元组拆分成分组名和分组DataFrame两个变量即可,适配动态分组数、动态行数的使用要求:
import pandas as pd import matplotlib.pyplot as plt # 测试数据,可替换为你自己的DataFrame data = { 'tag': [1,1,1,2,2,2], 'date': [20,21,22,20,21,22], 'value': [1,5,3,8,6,14] } df = pd.DataFrame(data) # 核心分组绘图逻辑 for tag_val, group_df in df.groupby('tag'): # 可按需修改line的颜色、粗细、标签、画布大小等plot参数 group_df.plot(x='date', y='value', kind='line', figsize=(8,4), title=f'tag={tag_val}数值变化趋势') plt.show()
补充说明
如果需要把所有分组的折线图合并到同一个画布的不同子图,或者统一设置坐标轴格式、图例样式,只需要基于上述逻辑调整matplotlib的相关参数即可,无需修改分组迭代的核心逻辑。
内容的提问来源于stack exchange,提问作者koceca
相关产品推荐
相关产品推荐

