Есть два датафрейма:
Необходимо:
1.добавить условие проверки, является ли в текущей строчке столбец ‘v6’ датафрейма main_df равным названию столбца датафрейма full
2. Если условие выполняется, то умножить каждый столбец текущей строчки main_df на соответствующее значение 1 строки full
Т.е если main_df[‘v6’]= столбцу col1 (из full), то каждое значения от v1 до v5 Умножаем на 2 (ведь col1 в 1 строке имеет значение 2).
И так далее...
3. После Умножения всех значений main_df , найти сумму каждого столбца
в идеале было бы хорошо, если бы можно было указывать для какой строчки full будет идти умножение, но по-умолчанию на 1-ую.
В итоге должно получиться:
Пока что выходит ошибка при попытке сравнить наименование и значение:
V1 | v2 | v3 | v4 | v5 | v6 |
1 | 2 | 7 | 4 | 4 | col1 |
3 | 4 | 1 | 4 | 4 | col2 |
1 | 2 | 5 | 4 | 4 | col3 |
4 | 6 | 2 | 4 | 4 | nol1 |
2 | 7 | 1 | 4 | 4 | nol2 |
1 | 6 | 2 | 4 | 4 | nol3 |
2 | 4 | 6 | 4 | 4 | nol4 |
Python:
dataframe_list =[[1,2,7,4,4, 'col1'], [3,4,1,4,4,'col2'],[1,2,5,4,4, 'col3'],[4,6,2,4,4,'nol1'],[2,7,1,4,4,'nol2'],[1,6,2,4,4,'nol3'],[2,4,6,4,4,'nol4']]
main_df =pd.DataFrame(dataframe_list, columns=['v1','v2','v3','v4','v5','v6'])
Col1 | col2 | col3 | nol1 | nol2 | nol3 | nol4 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
Python:
data_list =[[2,3,4,5,6,7,8],[3,4,5,6,7,8,9]]
full= pd.DataFrame(data_list, columns =['col1','col2','col3','nol1','nol2','nol3','nol4'])
Необходимо:
1.добавить условие проверки, является ли в текущей строчке столбец ‘v6’ датафрейма main_df равным названию столбца датафрейма full
2. Если условие выполняется, то умножить каждый столбец текущей строчки main_df на соответствующее значение 1 строки full
Т.е если main_df[‘v6’]= столбцу col1 (из full), то каждое значения от v1 до v5 Умножаем на 2 (ведь col1 в 1 строке имеет значение 2).
И так далее...
3. После Умножения всех значений main_df , найти сумму каждого столбца
в идеале было бы хорошо, если бы можно было указывать для какой строчки full будет идти умножение, но по-умолчанию на 1-ую.
В итоге должно получиться:
V1 | v2 | v3 | v4 | v5 |
66 | 170 | 115 | 140 | 140 |
Пока что выходит ошибка при попытке сравнить наименование и значение:
Python:
for j in full:
for i in range(len(main_df)):
if main_df.loc[i]['v6'] == full.columns[j]:
....