Первое, что я могу придумать, - это объединить два фрейма данных и затем выполнить умножение с объединенным фреймом данных:
tmp = df1.merge(df2)
tmp
# alpha number mult
# 0 A 1 2
# 1 A 2 2
# 2 A 3 2
# 3 B 4 3
# 4 B 5 3
# 5 B 6 3
# 6 C 7 4
# 7 C 8 4
# 8 C 9 4
df1.soln = tmp.number * tmp.mult
Это работает, хотя я чувствую, что должен быть более простой шаг тоже.
РЕДАКТИРОВАТЬ - вот способ сделать это в одной строке:
df1.soln = (df1.set_index("alpha").number * df2.set_index("alpha").mult).values
РЕДАКТИРОВАТЬ2 - вот еще одна строчка, похожая на комментарий @ scott-boston:
df1.soln = df1.merge(df2).assign(soln=lambda df: df.number * df.mult).soln
Обновили ответ выше "tomvon"
from PIL import Image
img = Image.open(image_path)
width, height = img.size[:2]
if height > width:
baseheight = 64
hpercent = (baseheight/float(img.size[1]))
wsize = int((float(img.size[0])*float(hpercent)))
img = img.resize((wsize, baseheight), Image.ANTIALIAS)
img.save('resized.jpg')
else:
basewidth = 64
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), Image.ANTIALIAS)
img.save('resized.jpg')
Я также рекомендую использовать метод эскизов PIL, потому что он устраняет все проблемы с соотношением сторон.
Однако один важный совет: замените
im.thumbnail(size)
на
im.thumbnail(size,Image.ANTIALIAS)
по умолчанию, PIL использует фильтр Image.NEAREST для изменения размера, который дает хорошую производительность, но плохое качество.