Я хочу взять большой фрейм данных с приблизительно 26 000 строк foodList и умножить столбец foodList ['food_quant'] на определенное значение из фрейма данных foodConversions. Чтобы определить это значение из foodConversions, в другом столбце foodList ['food_name'] есть строка, которая соответствует индексу foodConversions. Я делаю это для преобразования граммов разных продуктов в калории, и каждый тип пищи имеет разное количество калорий.
Я пытался делать вложенные циклы, чтобы просмотреть каждое значение в foodConversions и посмотреть, равно ли онов foodList ['food_name'], но он очень медленный и по какой-то причине никогда не завершает работу;следовательно, я бы предпочел отойти от этого метода. Я также пытался использовать applymap и лямбда-функцию, но я не думаю, что сделал это правильно. Наконец, я попытался использовать методы, описанные в другой проблеме, связанной со стековым потоком, но я не был уверен, как применить ее к моей ситуации или даже если она работает для моей ситуации. Вот ссылка на него: Умножить фрейм данных на значения из другого фрейма
Вот два фрейма данных:
foodConversions = pd.Dataframe([2,3], index=['meat','vegetables'], columns=['cal/gram'])
cal/gram
meat 2
vegetables 3
foodList = pd.Dataframe([['meat',40]['meat',30]['vegetables',20]['meat',10]], columns=['food_name','food_quant'])
food_name food_quant
0 meat 40
1 meat 30
2 vegetables 20
3 meat 10
Ирезультат должен выглядеть следующим образом:
food_name food_quant
0 meat 80
1 meat 60
2 vegetables 60
3 meat 20
Надеюсь, это имело смысл, я старался быть максимально тщательным, поэтому прошу прощения за длинное объяснение. Спасибо всем за помощь!