Довольно плохо знаком с этим, и у меня возникают проблемы с поиском правильного способа сделать это.
Скажем, у меня есть dataframe1, похожий на это с именами столбцов и набором чисел в качестве данных:
D L W S
1 2 3 4
4 3 2 1
1 2 3 4
и у меня dataframe2 выглядит следующим образом:
Name1 Name2 Name3 Name4
2 data data D
3 data data S
4 data data L
5 data data S
6 data data W
Я бы хотел, чтобы новый кадр данных был создан с результатом умножения каждой строки второго кадра данных на каждую строку первого кадра данных, где он умножает значение Name1 против значения в столбце dataframe1, которое соответствует значению Name4 из dataframe2.
Есть ли какой-нибудь хороший способ сделать это? Я пытался использовать такие методы, как where
, condition
и apply
, но не достаточно хорошо разбирался в вещах, чтобы что-то заработало.
РЕДАКТИРОВАТЬ: Используйте следующий код для создания фальшивых данные для фреймов данных:
d1 = {'D':[1,2,3,4,5,6],'W':[2,2,2,2,2,2],'L':[6,5,4,3,2,1],'S':[1,2,3,4,5,6]}
d2 = {'col1': [3,2,7,4,5,6], 'col2':[2,2,2,2,3,4], 'col3':['data', 'data', 'data','data', 'data', 'data' ], 'col4':['D','L','D','W','S','S']}
df1 = pd.DataFrame(data = d1)
df2 = pd.DataFrame(data = d2)
ИЗМЕНИТЬ СНОВА ДЛЯ БОЛЬШЕ ИНФОРМАЦИИ
Сначала я изменил данные в df1 на этом этапе, чтобы этот новый пример получился лучше. Итак, из этих двух фреймов данных фрейм данных, который я хотел бы создать, получился бы так, если бы умножение закончилось для первых четырех строк df2. Вы можете видеть, что Col2 и Col3 не изменились, но в зависимости от буквы Col4, Col1 умножили на соответствующий коэффициент из df1:
d3 = {'col1': [3,6,9,12, 15,18,12,10,8,6,4,2,7,14,21,28,35,42,8,8,8,8,8,8], «col2»: [2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2], 'col3': [ «данные», «данные», «данные», «данные», «данные», «данные», «данные», «данные», «данные», «данные», «данные», «данные», "данные «,» данные »,« данные »,« данные »,« данные »,« данные »,« данные »,« данные »,« данные »,« данные »,« данные »,« данные »],« col4 » : [ 'D', 'D', 'D', 'D' 'D' 'D' 'L' 'L' 'L' 'L' 'L' 'L', 'D', 'D', 'D', 'D', 'D', 'D', 'W', 'W', 'W', 'W', 'W', 'W']}
df3 = pd.DataFrame (data = d3)