Python 3.x 如何根据数据帧的索引绘制多行?

Python 3.x 如何根据数据帧的索引绘制多行?,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,假设我们有一个数据帧,如下所示: index = pd.MultiIndex.from_tuples(zip(['A','A','A','A','B','B','B','B'],[2012,2013,2014,2015,2012,2013,2014,2015])) df = pd.DataFrame({'col':[10,20,10,30,50,20,60,80]},index=index) 然后,我将这些多索引的名称分别添加为“产品”和“年份” 现在我需要以这样一种方式来绘制这些数据,即每个

假设我们有一个数据帧,如下所示:

index = pd.MultiIndex.from_tuples(zip(['A','A','A','A','B','B','B','B'],[2012,2013,2014,2015,2012,2013,2014,2015]))
df = pd.DataFrame({'col':[10,20,10,30,50,20,60,80]},index=index)
然后,我将这些多索引的名称分别添加为“产品”和“年份”

现在我需要以这样一种方式来绘制这些数据,即每个“产品”都有一条不同的线年份在x轴上。列“col”中的值绘制在y轴上

如何做到这一点

df.plot(kind='line',x='Year')
我试过了,但没用

是不是我必须将数据帧转换为单独的列来强制绘制单独的行

我这样问是因为实际的数据帧有几个列,而不是这里只有一个“列”。因此,如果我需要使用unstack()使其工作,那么我必须创建与原始数据帧中的列数量相同的新数据帧。这是一个很大的麻烦。

您可以取消堆叠:

df['col'].unstack(level=0).plot()
输出:


我已更新了有关此取消堆叠的问题。你能看看还有没有别的办法吗?我有太多的专栏,而不是这里只有一个。我真的不明白你在问什么。我会说是的,我会做的就是为每一个专栏解压以获得情节。您还可以重置索引并使用seaborn的FaceGrid。