Python 基于另一列中的多个变量打印两列?
我有一个数据框,看起来像这样:Python 基于另一列中的多个变量打印两列?,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个数据框,看起来像这样: Symbol Date Amount Portfolio Value 0 BLL 2020-01-06 5116.83 5069.42 1 BLL 2020-03-16 5104.98 4615.97 5 BLL 2020-03-17 5116.83 5118.95 6 BLL 2020-06-15 5104.95 5401.712 7 BLL 2020-06-16 5116.83 5570.23 11 IBB 2014-
Symbol Date Amount Portfolio Value
0 BLL 2020-01-06 5116.83 5069.42
1 BLL 2020-03-16 5104.98 4615.97
5 BLL 2020-03-17 5116.83 5118.95
6 BLL 2020-06-15 5104.95 5401.712
7 BLL 2020-06-16 5116.83 5570.23
11 IBB 2014-03-04 542.98 179.48
12 IBB 2014-10-10 810.97 262.33
13 IBB 2016-09-30 810.71 289.45
14 IBB 2016-10-03 810.97 290.08
15 IBB 2016-12-29 810.69 267.19
16 IBB 2016-12-30 810.97 265.55
52 SCHE2017-07-05 1915.76 1922.68
53 SCHE2017-08-02 1942.2 2063.10
54 SCHE2017-12-22 1891.79 2158.26
57 SCHE2017-12-26 1942.2 2208.64
60 SCHE2018-12-17 1892.65 1870.20
63 SCHE2018-12-18 1942.2 1927.48
如何在“Symbol”列中为每只股票创建多个绘图,以绘制“金额”列和截止日期的“投资组合价值”
以下是到目前为止我得到的信息:
grouped = df.groupby(['Symbol'])
for key, group in grouped:
group.plot('Date', 'Amount', label = key)
这为每个符号提供了一个单独的绘图,如下所示:
无论出于何种原因,我都无法找出如何在同一图表上绘制另一列(y2)。如何为每个符号获取此值:
基于此,您可以使用set_index()
选择要一起打印的两列,然后调用.plot
grouped = df.groupby(['Symbol'])
for key, group in grouped:
group.set_index('Date')[['Amount','Portfolio Value']].plot(title = key)
请尝试下面给定的代码。您只需将尽可能多的列放入列表并指定给y轴:
group.plot(x='Date', y=['Amount', 'Portfolio Value'], title=key)
我猜应该是“等一下”,因为这就是在Matlab中在同一绘图上绘制多行的方式,matplotlib就是基于此。在for循环中尝试以下操作:
group。set_index('Date')[[['Amount','Portfolio Value']]]。绘图(label=key)
我目前没有使用matplotlib。我使用Spyder作为我的IDE,当我运行程序时,它将在屏幕的右上角显示绘图。想想group.plot在熊猫图书馆里,但我可能完全错了。@Terry,这很有效!谢谢我还添加了title=key,它给了我每个符号的标题。很好!,我将用这个创建一个答案,好吗?