0

I have these dataframes:

                          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

I need dataframe like this:

          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               

I have to get this above triangle using formula To get first value(43189) of the result triangle is = 357848*(3.143200-3.490607)^2 To get second value(140) of the result triangle is = 352118*(3.510582-3.490607)^2 and so on.., and also i've to switch to all columns , and every column data is unique formula.

Venkat
  • 115
  • 1
  • 2
  • 8
Devil
  • 83
  • 8

1 Answers1

1

Let's first create a new dataframe from the first dataframe (I assume it's called df1), omitting the last column and the last two rows:

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

Then we loop through the columns and make the calculation per column (assuming your second dataframe is called df2), while accessing Weighted Average with df2[colname][-1] as it is the last item in df2's columns:

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

This will output:

DP1 DP2 DP3 DP4 DP5 DP6 DP7 DP8 DP9 DP10
OP1 43189 47051 55673 9048 30491 5910 632 662 0 nan
OP2 140 82 16756 5617 1420 7211 54 486 nan nan
OP3 266529 1211 2 10968 17874 4705 208 nan nan nan
OP4 360548 56914 142030 38584 1092 6731 nan nan nan nan
OP5 380335 17933 19561 0 4048 nan nan nan nan nan
OP6 6191 16621 16984 11697 nan nan nan nan nan nan
OP7 142127 22032 786 nan nan nan nan nan nan nan
OP8 76955 102313 nan nan nan nan nan nan nan nan
OP9 6227 nan nan nan nan nan nan nan nan nan
OP10 nan nan nan nan nan nan nan nan nan nan
RJ Adriaansen
  • 9,131
  • 2
  • 12
  • 26
  • How can create new dataframe using values from another dataframe randomly? – Devil Apr 05 '21 at 09:57
  • Check [these](https://datatofish.com/random-rows-pandas-dataframe/) solutions. – RJ Adriaansen Apr 05 '21 at 10:54
  • Yes i can get the data But,its not in a triangle shape . its mixed with Nan values. – Devil Apr 05 '21 at 11:17
  • https://stackoverflow.com/questions/66948793/how-to-create-dataframe-by-randomly-selecting-from-another-dataframe Please check here.. @RJ Adriaansen – Devil Apr 05 '21 at 11:18