Как умножить фреймы данных - PullRequest
0 голосов
/ 12 июля 2020

У меня есть фрейм данных с 1115 строками и 1 столбцом и еще один с 18 строками и 1 столбцом. Я хочу умножить их и получить фрейм данных с 1115 строками и 18 столбцами. Я попробовал и получил фрейм данных (1115x18) со значениями NaN.

Это то, что я пытался сделать:

A - фрейм данных (1115x1)

A=pd.DataFrame(data=np.array(Mass*Per_RS))
               0
0     221.154473
1     -10.370921
2     203.945678
3      78.121608
4      78.121608
...          ...
1110  222.374772
1111  111.326855
1112  420.025814
1113  -87.408167
1114  158.834902

df - это фрейм данных с 18 строками и 100 столбцами. «Арматурная сталь» - это столбец фрейма данных df (18X1)

0       2.20495
1   1.34068e-07
2     0.0477244
3     0.0109445
4   1.81331e-07
5   6.69694e-07
6   3.18976e-07
7     0.0110236
8   0.000229472
9    0.00208144
10    0.0247276
11      4.10829
12      10.0569
13     0.830528
14      23.6096
15  9.14322e-06
16      2.20263
17   0.00142633
18  0.000887094

Мой код:

Results=(df['Reinforcing steel']).T*Per_RS

Я получаю это (работает только для первого столбца):

              0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18
0     487.633639 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1     -22.867319 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2     449.689177 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3     172.253916 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4     172.253916 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
...          ...  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ..
1110  490.324331 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1111  245.469687 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1112  926.134175 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1113 -192.730275 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1114  350.222358 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

1 Ответ

1 голос
/ 12 июля 2020

Я попытался воспроизвести вашу проблему с предоставленными данными. Этот образец может вам помочь. Results иметь количество столбцов как набор данных df['Reinforcing steel'] и количество строк как набор данных A.

import pandas as pd
A = pd.DataFrame({"Mass*Per_RS": [
    221.154473,
    -10.370921,
    203.945678,
     78.121608,
     78.121608,
    222.374772,
    111.326855,
    420.025814,
    -87.408167,
    158.834902,
]})
df = pd.DataFrame({'Reinforcing steel': [  
    2.20495,
  1.34068e-07,
    0.0477244,
    0.0109445,
  1.81331e-07,
  6.69694e-07,
  3.18976e-07,
    0.0110236,
  0.000229472,
   0.00208144,
    0.0247276,
      4.10829,
      10.0569,
     0.830528,
      23.6096,
  9.14322e-06,
      2.20263,
   0.00142633,
  0.000887094
]})
Results = pd.DataFrame(A["Mass*Per_RS"].apply(lambda row: row * df['Reinforcing steel']))
Results
             0         1           2           3           4           5           6           7           8           9           10          11          12          13          14          15          16          17          18
0   487.634555  0.000030    10.554465   2.420425    0.000040    0.000148    0.000071    2.437918    0.050749    0.460320    5.468619    908.566710  2224.128420     183.674982  5221.368646     0.002022    487.121477  0.315439    0.196185
1   -22.867362  -0.000001   -0.494946   -0.113505   -0.000002   -0.000007   -0.000003   -0.114325   -0.002380   -0.021586   -0.256448   -42.606751  -104.299315     -8.613340   -244.853296     -0.000095   -22.843302  -0.014792   -0.009200
2   449.690023  0.000027    9.733185    2.232083    0.000037    0.000137    0.000065    2.248216    0.046800    0.424501    5.043087    837.867989  2051.061289     169.382596  4815.075879     0.001865    449.216869  0.290894    0.180919
3   172.254240  0.000010    3.728307    0.855002    0.000014    0.000052    0.000025    0.861181    0.017927    0.162605    1.931760    320.946221  785.661199  64.882183   1844.419916     0.000714    172.072997  0.111427    0.069301
4   172.254240  0.000010    3.728307    0.855002    0.000014    0.000052    0.000025    0.861181    0.017927    0.162605    1.931760    320.946221  785.661199  64.882183   1844.419916     0.000714    172.072997  0.111427    0.069301
5   490.325254  0.000030    10.612703   2.433781    0.000040    0.000149    0.000071    2.451371    0.051029    0.462860    5.498794    913.580052  2236.400845     184.688475  5250.179417     0.002033    489.809344  0.317180    0.197267
6   245.470149  0.000015    5.313007    1.218417    0.000020    0.000075    0.000036    1.227223    0.025546    0.231720    2.752846    457.363005  1119.603048     92.460070   2628.382516     0.001018    245.211871  0.158789    0.098757
7   926.135919  0.000056    20.045480   4.596973    0.000076    0.000281    0.000134    4.630197    0.096384    0.874259    10.386230   1725.587851     4224.157609     348.843199  9916.641458     0.003840    925.161459  0.599095    0.372602
8   -192.730638     -0.000012   -4.171502   -0.956639   -0.000016   -0.000059   -0.000028   -0.963553   -0.020058   -0.181935   -2.161394   -359.098098     -879.055195     -72.594930  -2063.671860    -0.000799   -192.527851     -0.124673   -0.077539
9   350.223017  0.000021    7.580300    1.738369    0.000029    0.000106    0.000051    1.750932    0.036448    0.330605    3.927606    652.539840  1597.386726     131.916833  3750.028502     0.001452    349.854520  0.226551    0.140901
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...