【问题标题】:Division of a pandas data frame without the same length没有相同长度的熊猫数据框的划分
【发布时间】:2017-07-07 14:23:57
【问题描述】:

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

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

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

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]

【问题讨论】:

  • 澄清一下,你想要按列划分吗?如:df1[0][0] = df1[0][0] / df2[0][0]df1[0][1] = df1[0][1] / df2[0][0]?

标签: python python-3.x pandas


【解决方案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,则列或索引都将对齐。

【讨论】:

    猜你喜欢
    • 2020-05-05
    • 2017-04-06
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    相关资源
    最近更新 更多