批量计算后复权问题,如何优化

我需要批量计算后复权,我有未复权的股票行情,及复权因子,总共1千多万行,如下,

     ts_code trade_date   open   high    low  close  pre_close  change  pct_chg        vol       amount  adj_factor
0  000001.SZ   20210602  23.89  23.92  23.38  23.89      23.92   -0.03  -0.1254  497527.02  1176608.126     111.921
1  000002.SZ   20210602  26.50  27.18  26.31  26.76      26.60    0.16   0.6015  853545.06  2287264.276     153.901
2  000004.SZ   20210602  16.21  17.18  15.92  16.57      15.98    0.59   3.6921   47125.57    77192.135       4.064
3  000005.SZ   20210602   1.80   1.83   1.77   1.80       1.79    0.01   0.5587   82388.69    14812.102       9.268
4  000006.SZ   20210602   5.29   5.29   5.22   5.24       5.28   -0.04  -0.7576   58093.43    30539.090      36.507
5  000007.SZ   20210602   3.70   3.71   3.64   3.66       3.70   -0.04  -1.0811   29560.28    10841.980       8.284
6  000008.SZ   20210602   2.27   2.29   2.27   2.28       2.28    0.00   0.0000  126807.00    28933.202      22.408
7  000009.SZ   20210602  10.00  10.09   9.89   9.92      10.05   -0.13  -1.2935  253313.77   252740.741       8.881
8  000010.SZ   20210602   4.01   4.05   4.00   4.02       4.03   -0.01  -0.2481   45925.00    18472.845      10.775
9  000011.SZ   20210602  12.86  12.90  12.42  12.52      12.97   -0.45  -3.4695   91615.92   115647.098       3.875

我使用如下代码计算后复权

df[['close', 'open', 'high', 'low']] = df[['close', 'open', 'high', 'low']].to_numpy() * df['adj_factor'].to_numpy()

提示错误:

Traceback (most recent call last):
  File "D:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3418, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-21-f7878ae9f133>", line 1, in <module>
    df[['close', 'open', 'high', 'low']] = df[['close', 'open', 'high', 'low']].to_numpy() * df['adj_factor'].to_numpy()
ValueError: operands could not be broadcast together with shapes (11516015,4) (11516015,) 

,请问,该如何修改?

使用`pd.mul()`

df[['close', 'open', 'high', 'low']]=df[['close', 'open', 'high', 'low']].mul(df['adj_factor'],axis=0)