Python PANDA-SQLITE时间序列绘图

Python PANDA-SQLITE时间序列绘图,python,pandas,Python,Pandas,关于从Sqlite绘制系列,我遇到了一个问题(我尝试了两个小时的不同解决方案,但没有成功) 我的SQL语句: p2 = sql.read_sql('select PCE,DT, VALUE_DEMANDE - VALUE_FORCAST as FC_ERROR FROM PCE GROUP BY PCE,DT_COMPUTE_FORCAST', cnx) 结果正常: PCE DT FC_ERROR 0 TAG1 01/01/

关于从Sqlite绘制系列,我遇到了一个问题(我尝试了两个小时的不同解决方案,但没有成功)

我的SQL语句:

p2 = sql.read_sql('select PCE,DT, VALUE_DEMANDE - VALUE_FORCAST as FC_ERROR FROM PCE GROUP BY PCE,DT_COMPUTE_FORCAST', cnx)
结果正常:

       PCE    DT                   FC_ERROR
0      TAG1   01/01/2015 00:00      3.573
1      TAG1   01/01/2015 01:00      3.514
..............................................
2      TAG2   01/01/2015 00:00      2.573
3      TAG2   01/01/2015 01:00      1.514
..............................................
2      TAG3   01/01/2015 00:00      6.573
3      TAG3   01/01/2015 01:00      4.514
我想得到直线图(x轴:DT)作为中的第二个图表 我尝试:

df = pd.DataFrame({'Error' :p2['FC_ERROR']},columns=list({'TAG1','TAG2','TAG3'}))
df.index = p2['DT']
ax=df.plot(lw=0.5,colormap='jet',marker='+',markersize=2,title='Time series Previsions / Reel')
ax=set_xlabel("Periode")
ax=set_ylabel("Value en Gwh")
如何从同一列中的数据生成columns=list? 我应该做pd系列(

谢谢

修改 好吧,伙计们,我试试

  p2 = sql.read_sql('select PCE,DT_COMPUTE_FORCAST, VALUE_DEMANDE,VALUE_FORCAST ,VALUE_DEMANDE - VALUE_FORCAST as FC_ERROR FROM PCE', cnx)  

 for name, groupe in p2.groupby('PCE'):
        print name 

 df = pd.DataFrame({'Pce' : groupe['PCE'].values,'FE' :groupe['FC_ERROR'].values})
    df.index = groupe['DT_COMPUTE_FORCAST']

    df = pd.DataFrame(groupe['FC_ERROR'].values, index=groupe['DT_COMPUTE_FORCAST'], columns=set(name))
    plt.figure()
    df.plot()
“for name”循环正在工作(我认为比set快),我得到了(demo)2字符串元素。 当我启动脚本时,python告诉我:

for name, groupe in p2.groupby('PCE'):
    print name 



df = pd.DataFrame({'Pce' : groupe['PCE'].values,'FE' :groupe['FC_ERROR'].values})
df.index = groupe['DT_COMPUTE_FORCAST']

df = pd.DataFrame(groupe['FC_ERROR'].values, index=groupe['DT_COMPUTE_FORCAST'], columns=set(name))
plt.figure()
df.plot()
A12250I2
A12250T2
Traceback (most recent call last):

  File "<ipython-input-138-73fb44bbbf67>", line 9, in <module>
    df = pd.DataFrame(groupe['FC_ERROR'].values, index=groupe['DT_COMPUTE_FORCAST'], columns=set(name))

  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 239, in __init__
    copy=copy)

  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 399, in _init_ndarray
    return create_block_manager_from_blocks([values.T], [columns, index])

  File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 3534, in create_block_manager_from_blocks
    construction_error(tot_items, blocks[0].shape[1:], axes, e)

  File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 3515, in construction_error
    passed,implied))

ValueError: Shape of passed values is (1, 22509), indices imply (6, 22509)

我想在一张图表上绘制所有数据框!你有什么提示吗?

我不太理解你的问题,也许你可以详细说明一下?我认为你最想要的是dataframe.T属性,它是数据框的转置版本。你首先必须将字符串转换为实际日期时间:
df.index=pd.to\u datetime(p2['DT'])
感谢您的回复;我只想用DT(日期)轴上的线条绘制TAG1和TAG2的值(FC_错误)。这对您来说可能很简单,但对我来说不是;-(
set(name)
为您提供了一组所有单个字符,而您需要一个字符串(请自己尝试查看结果)在循环之前执行图,ax=plt.subplot(),并在循环中执行df.plot(ax=ax)
for name, groupe in p2.groupby('PCE'):
    df = pd.DataFrame({str(name) : groupe['FC_ERROR'].values}) 
    df.index=groupe['DT_COMPUTE_FORCAST']
    df.plot()