如何使函数接受并输出Dataframe系列



我正在尝试使用可调用函数对数据帧沿一列进行排序。Pandas医生表示,可调用程序需要期望一个系列,并返回一个形状相同的系列。我使用的是下面的这个函数,它改编自另外两个函数,它采用了一个十六进制颜色列表,并以特定的方式进行排序。

result = pd.DataFrame(frame)
def step (hexrgb, repetitions=1):
r, g, b = (int(hexrgb[i:i+2], 16) / 255.0 for i in range(0,5,2))
colorsys.rgb_to_hsv(r, g, b)
lum = math.sqrt( .241 * r + .691 * g + .068 * b )
h, s, v = colorsys.rgb_to_hsv(r,g,b)
h2 = int(h * repetitions)
lum2 = int(lum * repetitions)
v2 = int(v * repetitions)
return (colorsys.hsv_to_rgb(h2, lum, v2))

print(result.sort_values(by=['First Color'], key=step))

这里可能有很多错误,但最重要的是,似乎是让函数接受并输出一个系列:

0    c89664
1    e1c8af
2    c8c896
3    c8c8af
4    e1af96

感谢任何帮助,因为我是新手。

假设result['First Color']包含"hexrgb"值,请尝试:

result.sort_values(by='First Color', key=lambda col: step(col))