Pandas/SQLITE数据帧p

2024-09-25 06:30:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试从sqlite绘制数据,但无法实现:-/

p2 = sql.read_sql('select DT_COMPUTE_FORCAST,VALUE_DEMANDE,VALUE_FORCAST from PCE', cnx)

# Data frame p2 show the datas
      DT_COMPUTE_FORCAST  VALUE_DEMANDE  VALUE_FORCAST
0       27/06/2014 06:00          5.128          5.324
1       27/06/2014 07:00          5.779          5.334
2       27/06/2014 08:00          5.539          5.354

df = pd.DataFrame({'Demande' : p2['VALUE_DEMANDE'],'Forcast' :p2['VALUE_FORCAST']},index=p2['DT_COMPUTE_FORCAST'])

df.plot(title='Title Here')

=>;我的图表正在显示,但没有值,您能给我一个提示吗?!你知道吗

df.info()
<class 'pandas.core.frame.DataFrame'>
Index: 20109 entries, 27/06/2014 06:00 to 11/05/2015 05:00
Data columns (total 2 columns):
Demande    0 non-null float64
Forcast    0 non-null float64
dtypes: float64(2)
memory usage: 392.8+ KB

下面的句子是正确的还是我漏掉了什么?公司名称:

df = pd.DataFrame({'Demande' : p2['VALUE_DEMANDE'],'Forcast' : p2['VALUE_FORCAST']},index=p2['DT_COMPUTE_FORCAST'])

Tags: dataframedfsqldatavaluedtframepd
1条回答
网友
1楼 · 发布于 2024-09-25 06:30:56

我认为这里发生的事情是,因为您传递来自p2的数据,并使用其中一列作为索引,索引值不再对齐,因此最终得到0值。您可以通过在df创建之后分配索引来解决这个问题:

df = pd.DataFrame({'Demande' : p2['VALUE_DEMANDE'],'Forcast' :p2['VALUE_FORCAST']})

然后呢

df.index = p2['DT_COMPUTE_FORCAST']

示例:

In [160]:

df = pd.DataFrame({'a':np.arange(5), 'b':list('abcde')})
df
Out[160]:
   a  b
0  0  a
1  1  b
2  2  c
3  3  d
4  4  e
In [161]:

df1 = pd.DataFrame({'a_copy':df['a']}, index=df['b'])
df1
Out[161]:
   a_copy
b        
a     NaN
b     NaN
c     NaN
d     NaN
e     NaN

另一种解决方法是访问.values属性,以便数据是匿名的:

In [162]:

df1 = pd.DataFrame({'a_copy':df['a'].values}, index=df['b'])
df1
Out[162]:
   a_copy
b        
a       0
b       1
c       2
d       3
e       4

因此,以下方法应该有效:

df = pd.DataFrame({'Demande' : p2['VALUE_DEMANDE'].values,'Forcast' : p2['VALUE_FORCAST'].values},index=p2['DT_COMPUTE_FORCAST'])

相关问题 更多 >