Python 熊猫:在多指标上计算

Python 熊猫:在多指标上计算,python,pandas,Python,Pandas,我有一个数据帧,如: 我想减去如下值: 减去 到目前为止我尝试的内容(数据帧:): 我可以做到: d[0:5] - d[0:5] 所有的值都是零 但如果我这样做: d[0:5] - d[5:] 我得到了所有值的NaN。你知道我怎么做这样的手术吗 编辑: 有效的是 dfl.unstack(['a','b'])['data'][5:] - dfl.unstack(['a','b'])['data'][0:5].values 但是感觉有点笨拙您可以使用loc选择第一级中与一个标签对应的所有

我有一个数据帧,如:

我想减去如下值:

减去

到目前为止我尝试的内容(数据帧:):

我可以做到:

d[0:5] - d[0:5]
所有的值都是零

但如果我这样做:

d[0:5] - d[5:]
我得到了所有值的NaN。你知道我怎么做这样的手术吗

编辑:

有效的是

dfl.unstack(['a','b'])['data'][5:] - dfl.unstack(['a','b'])['data'][0:5].values

但是感觉有点笨拙

您可以使用
loc
选择第一级中与一个标签对应的所有行,如下所示:

In [8]: d.loc[0]
Out[8]:
          data                                                        ...
a         0.17                                       1.00
b          0          5         10         500        0          5
d
0.0  11.098909   9.223784  8.003650  10.014445  13.231898  10.372040
0.3  14.349606  11.420565  9.053073  10.252542  26.342501  25.219403
0.5   1.336937   2.522929  3.875139  11.161803   3.168935   6.287555
0.7   0.379158   1.061104  2.053024  12.358577   0.678352   2.133887
1.0   0.210244   0.631631  1.457333  15.117805   0.292904   1.053916
所以做减法看起来像:

In [11]: d.loc[0] - d.loc[1000]
Out[11]:
           data                                                         ...
a          0.17                                        1.00
b           0          5          10        500         0          5
d
0.0   -3.870946  -3.239915  -3.504068 -0.722377   -2.335147  -2.460035
0.3  -65.611418 -42.225811 -25.712668 -1.028758  -65.106473 -44.067692
0.5  -84.494748 -55.186368 -34.184425 -1.619957  -89.356417 -69.008567
0.7  -92.681688 -61.636548 -37.386604 -4.227343 -110.501219 -78.925078
1.0 -101.071683 -61.758741 -37.080222 -3.081782 -103.779698 -80.337487

很容易。我只是花了一个小时到处玩。
In [11]: d.loc[0] - d.loc[1000]
Out[11]:
           data                                                         ...
a          0.17                                        1.00
b           0          5          10        500         0          5
d
0.0   -3.870946  -3.239915  -3.504068 -0.722377   -2.335147  -2.460035
0.3  -65.611418 -42.225811 -25.712668 -1.028758  -65.106473 -44.067692
0.5  -84.494748 -55.186368 -34.184425 -1.619957  -89.356417 -69.008567
0.7  -92.681688 -61.636548 -37.386604 -4.227343 -110.501219 -78.925078
1.0 -101.071683 -61.758741 -37.080222 -3.081782 -103.779698 -80.337487