我需要批量计算后复权,我有未复权的股票行情,及复权因子,总共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,)
,请问,该如何修改?