Python 如何绘制数据帧的第二列?

Python 如何绘制数据帧的第二列?,python,pandas,plot,Python,Pandas,Plot,我想绘制熊猫数据帧的每一列。dataframe由两个for循环创建。外部循环遍历目录中的.xls文件,内部循环遍历单个excel表的每一页。然后将这些数据写入数据框,如下所示: X1 Y1 Z1 Y2 Z2 Y3 Z3 其中,数字表示.xls文件的对应页 现在我想根据x列绘制所有Y数据。 下面的代码显示了如何将Y1与X1进行对比 在此之前,在该代码的旧版本中,所有Y数据都具有相同的名称,即“Y”。这使得绘图非常容易,因为我只需要说y='y',每个对应的列都是自动绘制的。但这有一个缺点,即图例不是

我想绘制熊猫数据帧的每一列。dataframe由两个for循环创建。外部循环遍历目录中的.xls文件,内部循环遍历单个excel表的每一页。然后将这些数据写入数据框,如下所示:

X1 Y1 Z1 Y2 Z2 Y3 Z3

其中,数字表示.xls文件的对应页

现在我想根据x列绘制所有Y数据。 下面的代码显示了如何将Y1与X1进行对比

在此之前,在该代码的旧版本中,所有Y数据都具有相同的名称,即“Y”。这使得绘图非常容易,因为我只需要说y='y',每个对应的列都是自动绘制的。但这有一个缺点,即图例不是我希望的那样,因为每个绘图的每个标签都是相同的,即“Y”。但我希望图例中有不同的标签,即“Y1”等。这就是我重命名列的原因,这导致了从列1开始绘制第二列的问题

所以,问题是如何绘制数据帧的第二列

提前谢谢大家,, Zwieback

一般来说,假设我知道我有多少Y型数据,这可能很容易。但不幸的是,每个.xls文件中有不同数量的工作表。 否则
图(x=0,y=[1,3,5],ax=ax1) 如果有三列包含Y数据,则可以使用

if index %2 ==0:
    fig = plt.figure()
    ax1 = fig.add_subplot(121)
    ax2 = fig.add_subplot(122)
    plt.subplots_adjust(wspace=0.5)
    ax1.set_title(str(files_xls[parameter]), fontsize = 10)
    ax1.set_ylabel('I [$\mu$A]')
    ax1.set_xlabel('E [V/m]')
    df.plot(x=0,y=1, ax=ax1)
    plt.show()
if index %2 ==1:
    ax2.set_title(str(files_xls[parameter]), fontsize = 10)
    ax2.set_ylabel('I [$\mu$A]')
    df.plot(x=0, y=1, ax=ax2, legend=True).get_figure().savefig(str(files_xls[parameter])+'.png', dpi=450)
    plt.show()             
    plt.close(fig)
然后我试着用切片来绘制它。 绘图(x=0,y=[:,1::2],ax=ax1)
但随后出现一个错误:“SyntaxError:无效语法”

您可以将
X
设置为索引和绘图:

df.set_index('X1').iloc[::2].plot()
另一种方法,不使用
设置索引

Ycols = df.filter(like='Y').columns
df.plot(x='X1', y=Ycols)