我需要更新一个面板切片,其中一些值从数据帧中退出。即使我没有收到任何错误,它也无法正常工作。它出了什么问题?
for
请注意它的尺寸不一样,我想使用索引来对齐数据。 我知道转换成具有相同形状的数组我可以获得我想要的但我想找到另一种解决方案。
感谢您的帮助。
L,
答案 0 :(得分:0)
你正陷入一些半复杂的维度问题。
让我们稍微分解一下你的作业。
siPanel.loc[:, [0], [0]] = df.loc[:, ['sbc']]
df.loc[:, ['sbc']]
是一个形状为10 x 1
的数据框。 :
10
给了['sbc']
,1
给了df.loc[:, 'sbc']
。如果你完成10 x 0
形状将是(10, )
或siPanel.loc[:, [0], [0]]
,这将是一个系列。我要说一个好的规则就是根据需要使用尽可能少的维度。
16 x 1 x 1
是一个形状(16, )
的面板。使用前一段中的课程,您知道我们可以使用siPanel.loc[:, 0, 0]
将维度缩减为siPanel.loc[:, 0, 0] = df.loc[:, 'sbc']
siPanel.loc[:, 0, 0]
1998 NaN
1999 NaN
2000 0.677186
2001 0.030134
2002 0.003945
2003 0.894504
2004 0.913937
2005 0.553544
2006 0.199962
2007 0.384449
2008 0.491008
2009 0.408632
2010 NaN
2011 NaN
2012 NaN
2013 NaN
Name: 0, dtype: float64
。现在这也是一个系列,并且任务可以毫无问题地完成。
试试这个:
select sum(total1) + SELECT sum( total2 )
from balance WHERE id=( SELECT max(id)
FROM balance)