【问题标题】:How to plot Time Series Line Plot from multiple dataframe columns in Python如何从 Python 中的多个数据框列绘制时间序列线图
【发布时间】:2020-11-08 05:22:59
【问题描述】:

我有以下 DataFrame nq 我想为其绘制线图。
-1、-2 等列表示在date 列中给出的日期之前和之后的用户得分,即如果nq.date = 2020-10-23nq.-1 =2020-10-22。我尝试了以下代码,但它产生了KeyError: (-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7)。有没有办法解决这个问题?

nq

UserId     |   date                 |-7|-6|-5|-4|-3|-2|-1|0 |1 |2 |3 |4 |5 |6 |7
     1      2009-10-17 17:38:32.590 |0 |0 |0 |0 |0 |0 |5 |0 |1 |0 |0 |0 |0 |0 |0  
     2      2009-10-19 00:37:23.067 |0 |0 |0 |0 |0 |2 |1 |0 |1 |0 |0 |8 |0 |0 |0    
     3      2009-10-20 08:37:14.143 |0 |0 |0 |0 |0 |0 |3 |0 |0 |0 |0 |0 |0 |0 |0 
     4      2009-10-21 18:07:51.247 |0 |7 |0 |0 |0 |0 |1 |0 |0 |0 |0 |0 |0 |0 |0 
     5      2009-10-22 21:25:24.483 |0 |0 |0 |0 |0 |0 |1 |0 |0 |0 |0 |0 |0 |0 |0  

代码

nq.plot(kind='line',x=nq[-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7], y=nq[-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7].mean())

【问题讨论】:

  • 图表应该是什么样子的?
  • @ipj x 轴应该有从 -7 到 7 的标签,y 轴应该有标签的平均值。

标签: python pandas datetime matplotlib time-series


【解决方案1】:

试试:

nq.iloc[:,2:].mean().plot(kind='line')

结果:

要在图表上结合均值和标准差,请尝试:

nq.iloc[:,2:].mean().plot(kind='line', label='mean')
nq.iloc[:,2:].std().plot(kind='line', label='std')
plt.legend()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多