熊猫数据框中的Excel sumproudct函数

时间:2019-10-26 02:23:38

标签: pandas

好吧,作为python的初学者,我发现熊猫数据帧中的乘法矩阵很难执行。

我有两个表格如下:

  df1 

      Id    lifetime    0    1    2    3    4    5  .... 30 
  0    1      4        0.1   0.2  0.1  0.4  0.5  0.4...  0.2
  1    2      7        0.3   0.2  0.5  0.4  0.5  0.4...  0.2
  2    3      8        0.5   0.2  0.1  0.4  0.5  0.4...  0.6
   .......
  9    6      10       0.3   0.2  0.5  0.4  0.5  0.4...  0.2

  df2 

     Group lifetime      0    1    2    3    4    5  .... 30 
  0    2      4        0.9   0.8  0.9  0.8  0.8  0.8...  0.9
  1    2      7        0.8   0.9  0.9  0.9  0.8  0.8...  0.9
  2    3      8        0.9   0.7  0.8  0.8  0.9  0.9...  0.9
   .......
  9    5      10       0.8   0.9  0.7  0.7  0.9  0.7...  0.9

我想在我的代码中执行excel的sumproduct函数,并且需要求和的列的长度基于两个df的第1列的生存期,例如

 for row 0 in df1&df2, lifetime=4:
 sumproduct(df1 row 0  from column 0 to column 3,
            df2 row 0 from column 0 to column 3)

  for row 1 in df1&df2, lifetime=7
  sumproduct(df1 row 2 from column 0 to column 6,
             df2 row 2 from column 0 to column 6)

  .......

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用.iloc访问带有整数的行和列。 因此,如果lifetime == 4是第0行,并且如果计算Id为零的列号,则标记为0的列将为2,标记为3的列将为5,要获得该间隔,您将输入2:6 。 使用 .iloc [0,2:6] 在两个数据帧中获得正确的数据后,即可运行np.dot 见下文:

import numpy as np
np.dot(df1.iloc[0,2:6], df2.iloc[1,2:6])

只是为了确保您拥有正确的数据,请尝试运行

df1.iloc[0,2:6]

然后尝试np.dot产品。您可以阅读“ pandas iloc”和“切片”以了解更多信息。