Python 对数据帧的备用列求和

Python 对数据帧的备用列求和,python,numpy,pandas,Python,Numpy,Pandas,我有一个数据框,看起来像 A 00:00 00:30 01:00 01:30 02:00 .....22:30 23:00 23:30 1 2 3 3 4 3 1 6 4 2 5 6 2 6 5 2 1 2 我在试着 A 00:00 01:00 02:00 ..... 23:00 1 6 6 7

我有一个数据框,看起来像

 A   00:00 00:30 01:00 01:30 02:00 .....22:30 23:00 23:30 
 1     2     3     3     4    3            1     6   4
 2     5     6     2     6    5            2     1   2
我在试着

 A   00:00 01:00 02:00 ..... 23:00
 1     6     6     7           7
 2     7     8     11          3
00:00
中添加列
23:30


我尝试使用and,它对所有列求和。我怎样才能告诉它对每个备选列求和?

我认为这应该有效:

In [261]:
df = pd.DataFrame(np.random.randn(5,6), columns=['00:00','00:30','01:00','01:30','02:00','02:30'])
df

Out[261]:
      00:00     00:30     01:00     01:30     02:00     02:30
0  0.176952  1.161850  0.894800 -0.246474  1.252235 -0.816835
1  0.817057 -1.338584 -0.983922 -0.073771 -2.188114  1.819888
2 -0.637196 -0.429361  1.267454  0.040461  1.256472 -0.242053
3  0.270544  0.403675  0.890263  1.767279  1.380494 -1.349156
4 -0.752082  0.380903 -0.795439  1.176303  0.176784  0.693317

In [262]:    
rhs = df.ix[:,1::2]
df.ix[:,::2] + pd.concat([rhs.ix[:,-1:],rhs.ix[:,:-1]],axis=1).values

Out[262]:
      00:00     01:00     02:00
0 -0.639884  2.056650  1.005761
1  2.636945 -2.322505 -2.261885
2 -0.879249  0.838093  1.296933
3 -1.078612  1.293938  3.147772
4 -0.058764 -0.414535  1.353087

In [263]:
rhs

Out[263]:
      00:30     01:30     02:30
0  1.161850 -0.246474 -0.816835
1 -1.338584 -0.073771  1.819888
2 -0.429361  0.040461 -0.242053
3  0.403675  1.767279 -1.349156
4  0.380903  1.176303  0.693317
因此,在您的情况下,由于列名中有30分钟的间隔,因此生成的df将使用lhs中的小时间隔列名和30分钟间隔中的值,并将这些值相加

因此,在这里,我们使用slice和step
.ix[:,::2]
返回所有行,并在添加时步进列。我们使用
.values
返回一个numpy数组,因为否则您将获得所有
NaN
值,因为pandas将尝试在列名上对齐,而您将无法获得匹配项


当您想用
23:30
添加
00:00
时,我们可以
concat
将最后一列与其余列对齐,这样我们在添加列时得到列对齐方式

肯定会有帮助,但如果您看到第一列和最后一列被相加。我认为这样做不行。请看更新的答案,这将最后一列与第一列到最后一列连接起来,以获得您想要的顺序