У меня есть 3 фрейма данных:
df1
id,k,a,b,c
1,2,1,5,1
2,3,0,1,0
3,6,1,1,0
4,1,0,5,0
5,1,1,5,0
df2
name,a,b,c
p,4,6,8
q,1,2,3
df3
type,w_ave,vac,yak
n,3,5,6
v,2,1,4
от умножения, используя pandas и numpy, я хочу вывод в df1:
id,k,a,b,c,w_ave,vac,yak
1,2,1,5,1,16,15,18
2,3,0,1,0,0,3,6
3,6,1,1,0,5,4,7
4,1,0,5,0,0,11,14
5,1,1,5,0,13,12,15
условия: Значение нового столбца будет =
#its not a code
df1["w_ave"][1] = df3["w_ave"]["v"]+ df1["a"][1]*df2["a"]["q"]+df1["b"][1]*df2["b"]["q"]+df1["c"][1]*df2["c"]["q"]
for output["w_ave"][1]= 2 +(1*1)+(5*2)+(1*3)
df3["w_ave"]["v"]=2
df1["a"][1]=1, df2["a"]["q"]=1 ;
df1["b"][1]=5, df2["b"]["q"]=2 ;
df1["c"][1]=1, df2["c"]["q"]=3 ;
Что означает: - в df1 будет добавлен новый столбец из имени столбца из df3. - для каждой строки df1 значение a, b, c будет умножено на одноименное значение q из df2. и суммируется вместе с соответствующим значением df3. - имя столбца df1, совпадает с именем столбца df2, будет умножено. Другой несоответствующий столбец не будет умножен, как df1 [k]. - Однако, если в df1 ["a"] есть 0, соответствующий выходной сигнал будет равен нулю.
Я борюсь с этим. Это было сложно объяснить. Мои попытки очень глупы. Я знаю, что эта попытка не сработает. Тем не менее, я добавил это:
import pandas as pd, numpy as np
data1 = "Sample_data1.csv"
data2 = "Sample_data2.csv"
data3 = "Sample_data3.csv"
folder = '~Sample_data/'
df1 =pd.read_csv(folder + data1)
df2 =pd.read_csv(folder + data2)
df3 =pd.read_csv(folder + data3)
df1= df2 * df1