0

在绘制按文本/名称字段和一系列日期分组的值时遇到一些困难。问题是,虽然我可以按名称分组并为某些日期范围生成图,但在某些情况下分组包含缺失的日期值(只是整个数据集的性质)。

也就是说,我很可能能够为某些分组值绘制 date_range('10/1/2013', '10/31/2013') ,但有些情况下没有 '10 /15/2013' 在该范围内,因此将抛出本文标题中提到的错误。

感谢您的任何意见!

plt.rcParams['legend.loc'] = 'best'

  dtable = pd.io.parsers.read_table(str(datasource), sep=',')
  unique_keys = np.unique(dtable['KEY'])

  index = date_range(d1frmt, d2frmt)
  for key in unique_keys:

      values = dtable[dtable['KEY'] == key]

      plt.figure()

      plt.plot(index, values['VAL']) <--can fail if index is missing a date

      plt.xlim(xmin=d1frmt,xmax=d2frmt)
      plt.xticks(rotation=270)
      plt.xticks(size='small')
      plt.legend(('H20'))
      plt.ylabel('Head (ft)')
      plt.title('Well {0}'.format(key))
      fig =  str('{0}.png'.format(key))

      out = str(outputloc) + "\\" + str(fig)

      plt.savefig(out)
      plt.close()
4

1 回答 1

0

您的 dtable 中必须有一个日期列或索引。否则你不知道哪个values['Val']属于哪个日期。

如果你这样做,有两种方法。

由于您基于键创建子集,因此您可以使用该子集的索引(如果它是日期时间!):

plt.plot(values.index.to_pydatetime(), values['VAL'])

或将子集重新索引到您的“目标”范围”:

values = values.reindex(index)
plt.plot(index.to_pydatetime(), values['VAL'])

默认情况下,重新索引插入 NaN 值作为缺失数据。

如果您给出一个工作示例会更容易,如果不知道您的 Dataframe 是什么样子,这有点难以回答。

于 2013-04-23T06:36:43.500 回答