如何使用另一个数据帧获取数据帧

2024-05-19 10:27:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这些数据帧:

                          DP1         DP2         DP3         DP4         DP5         DP6         DP7         DP8        DP9       DP10       Total
OP1                  357848.0   1124788.0   1735330.0   2218270.0   2745596.0   3319994.0   3466336.0   3606286.0  3833515.0  3901463.0   3901463.0
OP2                  352118.0   1236139.0   2170033.0   3353322.0   3799067.0   4120063.0   4647867.0   4914039.0  5339085.0        NaN   5339085.0
OP3                  290507.0   1292306.0   2218525.0   3235179.0   3985995.0   4132918.0   4628910.0   4909315.0        NaN        NaN   4909315.0
OP4                  310608.0   1418858.0   2195047.0   3757447.0   4029929.0   4381982.0   4588268.0         NaN        NaN        NaN   4588268.0
OP5                  443160.0   1136350.0   2128333.0   2897821.0   3402672.0   3873311.0         NaN         NaN        NaN        NaN   3873311.0
OP6                  396132.0   1333217.0   2180715.0   2985752.0   3691712.0         NaN         NaN         NaN        NaN        NaN   3691712.0
OP7                  440832.0   1288463.0   2419861.0   3483130.0         NaN         NaN         NaN         NaN        NaN        NaN   3483130.0
OP8                  359480.0   1421128.0   2864498.0         NaN         NaN         NaN         NaN         NaN        NaN        NaN   2864498.0
OP9                  376686.0   1363294.0         NaN         NaN         NaN         NaN         NaN         NaN        NaN        NaN   1363294.0
OP10                 344014.0         NaN         NaN         NaN         NaN         NaN         NaN         NaN        NaN        NaN    344014.0
Total               3671385.0  11614543.0  17912342.0  21930921.0  21654971.0  19828268.0  17331381.0  13429640.0  9172600.0  3901463.0  34358090.0
Latest Observation   344014.0   1363294.0   2864498.0   3483130.0   3691712.0   3873311.0   4588268.0   4909315.0  5339085.0  3901463.0         NaN


                       DP1       DP2       DP3       DP4       DP5       DP6       DP7       DP8       DP9  DP10  Total
OP1               3.143200  1.542806  1.278299  1.237719  1.209207  1.044079  1.040374  1.063009  1.017725   NaN    NaN
OP2               3.510582  1.755493  1.545286  1.132926  1.084493  1.128106  1.057268  1.086496       NaN   NaN    NaN
OP3               4.448450  1.716718  1.458257  1.232079  1.036860  1.120010  1.060577       NaN       NaN   NaN    NaN
OP4               4.568002  1.547052  1.711784  1.072518  1.087360  1.047076       NaN       NaN       NaN   NaN    NaN
OP5               2.564198  1.872956  1.361545  1.174217  1.138315       NaN       NaN       NaN       NaN   NaN    NaN
OP6               3.365588  1.635679  1.369162  1.236443       NaN       NaN       NaN       NaN       NaN   NaN    NaN
OP7               2.922798  1.878099  1.439393       NaN       NaN       NaN       NaN       NaN       NaN   NaN    NaN
OP8               3.953288  2.015651       NaN       NaN       NaN       NaN       NaN       NaN       NaN   NaN    NaN
OP9               3.619179       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN   NaN    NaN
OP10                   NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN   NaN    NaN
Weighted Average  3.490607  1.747333  1.457413  1.173852  1.103824  1.086269  1.053874  1.076555  1.017725   inf    NaN

我需要这样的数据帧:

          DP 1        DP 2        DP 3        DP 4    DP 5       DP 6    DP 7   DP 8    DP 9
OP 1     43,189      47,051      55,673      9,049   30,492      5,910   632     662     -   
OP 2     140           82        16,756      5,616   1,420       7,211   54      486    
OP 3     2,66,530    1,211          2        10,968  17,874      4,705   208        
OP 4     3,60,548    56,914      1,42,030    38,584   1,092      6,731          
OP 5     3,80,334    17,933      19,561         0     4,048                 
OP 6     6,191       16,621      16,984      11,697                     
OP 7     1,42,127    22,032      786                        
OP 8     76,955      1,02,314                           
OP 9     6,227                              
OP 10               

我必须用公式得到上面这个三角形 获取结果三角形的第一个值(43189)为=357848*(3.143200-3.490607)^2 获取结果三角形的第二个值(140)为=352118*(3.510582-3.490607)^2 等等 我还要切换到所有列,每列数据都是唯一的公式


Tags: 数据nantotaldpop三角形dp1dp2
1条回答
网友
1楼 · 发布于 2024-05-19 10:27:54

让我们首先从第一个数据帧(我假设它被称为df1)创建一个新的数据帧,省略最后一列和最后两行:

df_new = df1.loc[:, :'DP10'][:-2].copy()

然后我们循环遍历列,并对每列进行计算(假设您的第二个数据帧名为df2),同时使用df2[colname][-1]访问Weighted Average,因为它是df2列中的最后一项:

for colname, col in df_new.iteritems():
    df_new[colname] = (df_new[colname] * ( df2[colname]-df2[colname][-1]) ** 2).round()

这将输出:

^{tb1}$

相关问题 更多 >

    热门问题