Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从excel文件和Pandas(python)绘制更多图形_Python_Excel_Pandas_Plot - Fatal编程技术网

从excel文件和Pandas(python)绘制更多图形

从excel文件和Pandas(python)绘制更多图形,python,excel,pandas,plot,Python,Excel,Pandas,Plot,我有一个.xlsx文件,其结构如下 现在,我知道了如何通过函数操作表中的数据。但是,我正在(应该说,没有成功)寻找一种方法,在相同的图形区域中绘制第2列中标记为a、B、C的三条曲线,使用第3列作为x轴,第9列作为y轴 我在这里以“复制粘贴”的适当形式复制表格 Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 1 FlagA 5743 bla bla 0.02% 13-Apr

我有一个
.xlsx
文件,其结构如下

现在,我知道了如何通过函数操作表中的数据。但是,我正在(应该说,没有成功)寻找一种方法,在相同的图形区域中绘制第2列中标记为a、B、C的三条曲线,使用第3列作为x轴,第9列作为y轴

我在这里以“复制粘贴”的适当形式复制表格

Col1    Col2    Col3    Col4    Col5    Col6        Col7    Col8    Col9
1       FlagA   5743    bla bla 0.02%   13-Apr-18   DS      Y       17229
2       FlagA   654     bla bla -0.89%  13-Apr-18   DS      Y       1962
3       FlagA   543     bla bla -0.74%  13-Apr-18   DS      Y       1629
4       FlagA   321     bla bla -0.56%  13-Apr-18   DS      Y       963
5       FlagA   8765    bla bla -0.37%  13-Apr-18   DS      Y       26295
6       FlagA   98769   bla bla 3.75%   13-Apr-18   DS      Y       296307
7       FlagA   943     bla bla 4.01%   13-Apr-18   DS      Y       2829
8       FlagA   7986    bla bla 4.04%   13-Apr-18   DS      Y       23958
9       FlagA   54343   bla bla 3.27%   13-Apr-18   DS      Y       163029
10      FlagB   876856  bla bla 4.16%   13-Apr-18   DS      Y       2630568
11      FlagB   36854   bla bla 3.36%   13-Apr-18   DS      Y       110562
12      FlagB   3644    bla bla 4.21%   13-Apr-18   DS      Y       10932
13      FlagC   68      bla bla 3.51%   13-Apr-18   DS      Y       204
14      FlagC   354     bla bla 3.70%   13-Apr-18   DS      Y       1062
15      FlagC   568748  bla bla 1.66%   13-Apr-18   DS      Y       1706244
16      FlagC   64      bla bla 2.00%   13-Apr-18   DS      Y       192
您可以这样尝试:

for flag, data in df.groupby('Col2'):
    plt.plot(data['Col3'], data['Col9'], label=flag)

plt.legend()
plt.show()
要添加条件,只需使用
if
语句:

for flag, data in df.groupby('Col2'):
    if flag != 'FlagC':
        plt.plot(data['Col3'], data['Col9'], label=flag)

在对
DataFrame
进行分组并设置适当的索引后,可以直接使用
pd.DataFrame.plot()

这对我很有用:

 plotted_df = df[['Col2', 'Col3', 'Col9']].set_index('Col3')
 plotted_df.groupby('Col2')['Col9'].plot()

总结:您正在寻找一个散点图,其中Col3值为x轴,Col9值为y轴,颜色或标记形状符合Col2?像这样的:?谢谢。如果我想插入一个条件表达式,只显示对应于标签“a”和“b”而不是“c”的绘图,该怎么办?我原以为,由于我收到错误消息“未找到要放入图例的标签的句柄”,因此没有生成绘图。它对您的示例数据有效,我不确定问题是什么,我认为我发现了问题,这有两个方面:1。我的条件是如果flag=='FlagC'。2.我按两列进行分组:df.groupby(['Col2','Col6'])(在我的代码中,我有不同的日期),因此标志永远不等于Col2。