【问题标题】:plotting pandas data frame with unequal data set用不相等的数据集绘制熊猫数据框
【发布时间】:2014-03-31 04:45:13
【问题描述】:

我正在尝试绘制包含不相等数量的数据点(行)的 pandas 数据框,但我不确定这是否会导致我的绘图出现问题。

在下面的代码中,portfolioValue# 的长度不同

portfolioValue1 = 521
portfolioValue1 = 500
portfolioValue1 = 521
portfolioValue1 = 521
portfolioValue1 = 425

我的熊猫数据框形状是

(1, 5)

这里是python代码:

portToPlot = {'AAPL.txt':[portfolioValue1], 'GOOG.txt':[portfolioValue2], 'MSFT.txt':[portfolioValue3],
    'AMZN.txt':[portfolioValue4],'CMG.txt':[portfolioValue5]}

portDFrame = DataFrame(portToPlot)

portDFrame.plot(sharex=True)

这是我不断收到的错误

return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.

【问题讨论】:

  • 请注意我的portfolioValues基本上是numpy数组

标签: python plot pandas dataframe


【解决方案1】:

它们的长度必须相等,例如,我们可以将所有元素缩短为 425 个元素:

portfolioValue1 = random.random(521) 
portfolioValue2 = random.random(500) 
portfolioValue3 = random.random(521) 
portfolioValue4 = random.random(521) 
portfolioValue5 = random.random(425) 
portDFrame=DataFrame(zip(portfolioValue1,portfolioValue2,portfolioValue3,portfolioValue4,portfolioValue5))
portDFrame.columns=['AAPL.txt', 'GOOG.txt', 'MSFT.txt','AMZN.txt','CMG.txt']
portDFrame.plot(sharex=True)

但在我看来,您正在研究为期一年的日间股票数据。我认为其中一些较短的原因是因为某些交易日缺少日间价格。您应该首先保留那些丢失的数据,而不是完全丢弃它们。

【讨论】:

  • 实际上数据可以追溯到 10 年前,每周数据。在您的示例中,您介意指出您是如何缩短数据的吗?
  • zip() 做到了。 zip(range(5), range(4)) 的结果是 [(0, 0), (1, 1), (2, 2), (3, 3)],它只有 4 个元素长。
  • 在最短的数据量上使用 zip(),我得到以下错误 '''% (len(value), len(cur_axis))) 异常:长度不匹配(5 vs 1)' ''
猜你喜欢
  • 2017-05-28
  • 2022-01-08
  • 2016-01-07
  • 1970-01-01
  • 2017-10-10
  • 2020-01-14
  • 2017-06-09
  • 2015-02-04
  • 2018-02-10
相关资源
最近更新 更多