我试图将整个数据帧大小40行* 600列乘以pandas.core.series.Series,其中包含40行且只有一列。所以我的目标是将所有行乘以唯一的行。它给了我一个错误。
operands could not be broadcast together with shapes (23560,) (589,)
[In] df1:
[out]
Index col1
2065-12-20 12 days
2061-10-31 12 days
2045-11-28 70 days
2043-10-31 11 days
2040-07-30 21 days
2049-06-30 64 days
2036-01-31 14 days
[In] df2:
Index col1 col2 etc....
2065-12-20 14 120
2061-10-31 18 800
2045-11-28 19 580
2043-10-31 21 12
2040-07-30 44 21
2049-06-30 1.2 17
2036-01-31 61.8 61
[in] k = df1 * df2
[out] operands could not be broadcast together with shapes (23560,) (589,)
我最终想要
Index col1 col2 etc....
2065-12-20 14*12 120*12
2061-10-31 18*12 800*12
2045-11-28 19*70 580*70
2043-10-31 21*11 12*11
2040-07-30 44*21 21*21
2049-06-30 1.2*64 17*64
2036-01-31 61.8*14 61*61
这可能是非常基本的,但我正在与它混合......这是因为我的df1是在几天?如何将其转换为常规数字? 谢谢
答案 0 :(得分:2)
使用mul method在两个DataFrame之间执行逐元素乘法:
k = df1.mul(df2)
如果由于第一个DataFrame在几天内有列,你仍然遇到问题,那么在执行逐元素乘法步骤之前,你可以convert it to an int或浮动:
import numpy as np
df1.col1 = (df1.col1.values / np.timedelta64(1, 'D')).astype(int)