Как мне разделить одну строку в фрейме данных со всеми остальными строками в другом df?

#python #pandas

#python #панды

Вопрос:

У меня есть два фрейма данных, df1 и df2. Я хочу разделить каждую строку в одном df на строку в моем другом df. Когда я пытаюсь это сделать сам, я получаю только значения NaN.

df1 имеет одну строку и три столбца и выглядит примерно так:

     0         1         2
0 -0.001506  0.000357 -0.002386
  

Я хочу разделить каждую строку в моем другом фрейме данных df2, который выглядит следующим образом:

 0   1   2
-0.008225100913712424   0.002488360440698889    -0.008225100913712424
-0.0012552065743555163  0.002048857368006418    -0.0001238320387255687
-0.0009167397808822475  0.001411666779150167    -0.0007873838608803974
-0.0005182164342202311  0.0016391411125882271   0.001532118153346973
-0.002096707101822415   0.00020798435058289044  -0.0020292527178495945
-0.0006015392658972329  0.0006577578888782298   0.00011805910826012678
-8.441050516860837e-05  0.0009791618599572782   0.0009791618599572782
-0.000343184413801656   0.00046695584173006566  -0.00024754285585693037
-0.0003435148893994322  0.0010474388430867787   0.0009629679686444792
-0.0014786804752094929  0.0022067330755990433   0.0022067330755990433
  

Желаемый результат:

 4,46    6,96    3,45
-0,17   5,73    0,05
-0,39   3,95    0,33
-0,66   4,59    -0,64
0,39    0,58    0,85
-0,60   1,84    -0,05
-0,94   2,74    -0,41
-0,77   1,31    0,10
-0,77   2,93    -0,40
  

Ответ №1:

Просто сделайте:

 df2.div(df1.iloc[0])
  

Или

 df2.div(df1.values)
  

Вывод (ваш вывод кажется неправильным : -0.008225 / -0.001506 = 5.46 ):

           0         1         2
0  5.461554  6.970197  3.447234
1  0.833471  5.739096  0.051899
2  0.608725  3.954249  0.330002
3  0.344101  4.591432 -0.642128
4  1.392236  0.582589  0.850483
5  0.399428  1.842459 -0.049480
6  0.056049  2.742750 -0.410378
7  0.227878  1.308000  0.103748
8  0.228098  2.934002 -0.403591
9  0.981860  6.181325 -0.924867
  

Ответ №2:

Попробуйте

 df2[:] = df2.values/df1.values
df2
Out[170]: 
          0         1         2
0  5.461554  6.970197  3.447234
1  0.833471  5.739096  0.051899
2  0.608725  3.954249  0.330002
3  0.344101  4.591432 -0.642128
4  1.392236  0.582589  0.850483
5  0.399428  1.842459 -0.049480
6  0.056049  2.742750 -0.410378
7  0.227878  1.308000  0.103748
8  0.228098  2.934002 -0.403591
9  0.981860  6.181325 -0.924867