gpt4 book ai didi

python - 更快地将函数应用于 Pandas 中的每一行

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

<分区>

我的 df 中有一列(“color_values”),其中包含一些从 1 到 10 的数字,我想使用 matplotlib.cm (cm) 将这些数字转换为十六进制颜色matplotlib.colors (mcol)

我在这里构建我的托盘:

color_list = ["#084594", ...] # my colors
cm1 = mcol.ListedColormap(color_list)
cnorm = mcol.Normalize(vmin=df["color_values"].min(), vmax=df["color_values"].max())
cpick = cm.ScalarMappable(norm=cnorm, cmap=cm1)
cpick.set_array(np.array([]))

这是需要更快的部分,因为我有数百万行:

df["color_hex"] = df.apply(
lambda row: mcol.to_hex(cpick.to_rgba(row["color_values"])), axis=1
)

我正在插入另一列 (color_hex),将值从 color_values 转换为十六进制颜色,但它通过遍历每个单元格来实现。

我查看了 numpy.vectorize,但在他们的文档中他们说 提供 vectorize 函数主要是为了方便,而不是为了性能。该实现本质上是一个 for 循环

我还查看了 numpy.where,但当您需要满足条件时,这似乎更合适,但我的情况并非如此。

所以我想知道还有哪些其他 numpy 操作适合这个?

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