У меня есть два pd.dataframes.
df1
Equipment_Class 0 1 2 3
PC1 8.72 7.32 0.17 0.00
PC2 19.18 10.11 8.72 0.35
df2
Year Equipment_Class 0 1 2 3
2024 PC1 0.7 0.3 0.1 0.0
2025 PC1 0.6 0.3 0.1 0.0
2026 PC1 0.6 0.3 0.1 0.0
2027 PC2 0.4 0.5 0.1 0.0
2028 PC2 0.2 0.5 0.1 0.2
2029 PC2 0.3 0.5 0.1 0.1
Я хочу умножить df1.loc [0, "0": "3"] и df2.loc [0 :, "0": " 3 "], если Equipment_Class совпадают в обоих dfs, т.е. Equipment_class ==" PC1 "или" PC2 "
Я также хочу сделать для l oop, поэтому мне не нужно добавлять вручную по столбцам.
Ниже приведен мой код:
df3=pd.DataFrame(columns=['PC1','PC2'])
col_names=df1.Equipment_Class
for incol,df3column in zip(col_names, df3.columns):
df3[df3column]=df1.loc[df1.Equipment_Class==incol, "0":"3"].to_numpy()
[None,:]*df2.loc[df2.Equipment_Class==incol, "0":"3"]
Я получил следующее сообщение об ошибке: ValueError: Невозможно привести к Series / DataFrame, dim должно быть <= 2: (1 , 1, 4) </p>
Спасибо за помощь.