没有相同长度的pandas数据帧的划分

时间:2017-07-07 14:23:58

标签: python python-3.x pandas

我需要对两个不同的数据帧进行划分。

它们具有相同的列名和编号,但长度不同。

除法包括划分此数据框的每个值

DF1

      2017-06-01    2017-06-02  2017-06-05  2017-06-06  2017-06-07
INDEX                   
   0    82449.0     -177507.0   -421443.0    70893.0     -122562.0
   1    95634.0      13662.0     25806.0     253506.0     211002.0
   2   -40956.3     -24179.4    -214666.0    68121.9      66225.6
   3    22950.0     -4590.0     -30600.0    -1530.0      -61200.0
   4   -18608.0      211408.0    284360.0   -88744.0     -64328.0
   5    73830.2      38480.7     21186.9    -68776.2      8437.9
   6   -69682.0     -4080.0     -263273.0    124479.0    -1728.0
   7    11869.0      137352.0    249828.0   -114608.0    -32129.5
   8    36384.6      4565.4      256868.0   -129041.0     89649.0

每个

DF2

        2017-06-01   2017-06-02   2017-06-05     2017-06-06   2017-06-07
 INDEX
    0   51970500.0   52246700.0   52021600.0     51928400.0   52090500.0

示例:df1 [0] [0] = df1 [0] [0] / df2 [0] [0]

1 个答案:

答案 0 :(得分:1)

除法的默认轴(列)为您提供所需的内容:

df1.div(df2.loc[0])
Out: 
       2017-06-01  2017-06-02  2017-06-05  2017-06-06  2017-06-07
INDEX                                                            
A        0.001586   -0.003397   -0.008101    0.001365   -0.002353
B        0.001840    0.000261    0.000496    0.004882    0.004051
C       -0.000788   -0.000463   -0.004126    0.001312    0.001271
D        0.000442   -0.000088   -0.000588   -0.000029   -0.001175
E       -0.000358    0.004046    0.005466   -0.001709   -0.001235
F        0.001421    0.000737    0.000407   -0.001324    0.000162
G       -0.001341   -0.000078   -0.005061    0.002397   -0.000033
H        0.000228    0.002629    0.004802   -0.002207   -0.000617
I        0.000700    0.000087    0.004938   -0.002485    0.001721

相同
df1 / df2.loc[0]

请注意,我使用df2.loc[0]将其提取为允许广播的系列。如果它们都是DataFrame,则索引和列都将对齐。如果其中一个是Series,则列或索引将对齐。