Вы хотите применить rgb_to_hex()
к столбцам «красный», «зеленый», «синий» каждой строки.Это однострочник с apply()
;никогда не используйте .iterrows()
, это низкая производительность, не векторизовано и почти всегда можно избежать.
# First, convert df 'red', 'green', 'blue' columns to `.astype(int)`
def rgb_to_hex(row):
"""Return color as #rrggbb for the given color values."""
return '#%02x%02x%02x' % (row['red'], row['green'], row['blue'])
df['hek'] = df.apply(rgb_to_hex, axis=1)
Вы можете сделать код еще более компактным в этом конкретном случае, как показало @ cs95, так как вы знаете только свой фрейм данныхимеет столбцы 'красный', 'зеленый', 'синий', вы можете использовать * распаковку кортежей в строке:
def rgb_to_hex(row):
return '#%02x%02x%02x' % *row