gpt4 book ai didi

python - 循环遍历行以应用函数 - Python

转载 作者:行者123 更新时间:2023-12-01 07:12:26 25 4
gpt4 key购买 nike

无法弄清楚如何将字符串结果('color_hek')作为单独的列添加回数据框(df)?

#importing libraries
import pandas as pd

#creating dataset
data = [[0,0,0], [0,0,0]]
df = pd.DataFrame(data, columns = ['red', 'green', 'blue'])

#defining function
def rgb_to_hex(red, green, blue):
"""Return color as #rrggbb for the given color values."""
return '#%02x%02x%02x' % (red, green, blue)

#looping through the dataframe to apply the function
for index, row in df.iterrows():
color_hek = rgb_to_hex(row['red'].astype(int),row['green'].astype(int),row['blue'].astype(int))
print(color_hek)

最佳答案

您想要将 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

关于python - 循环遍历行以应用函数 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58143354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com