gpt4 book ai didi

python - 根据值数组的条件在 pandas 中分配值

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

我有一堆数据帧和相同数量的数组,这些数组表示这些数据帧中 price 列中的间隔(中断数字)

我需要根据这些间隔分配名为 description_contrib 的新列,例如如果价格为 16 美元,间隔数组类似于 [0,10],这意味着该行的 description_contrib 列将为 2,因为 16 大于 0,也大于 0超过10

我想出了这段代码:

def description_contribution(df_cat):
for i in range(0, len(df_cat)):
for j in range(0, len(intervals[i])):
df_cat[i]['description_contrib'].loc[df_cat[i]['price'] >= intervals[i][j]] = j

但它运行缓慢,可能有更强大的解决方案

我该如何改进?

UPD数据如下所示

train_id    item_condition_id   brand_name  price   shipping    description_contrib
5644 1 Unknown 15.0 1 6
12506 1 Unknown 8.0 1 3
26141 1 Unknown 20.0 1 8

该数据帧的间隔是:

[0.0, 0.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 20.0, 22.0, 31.0]

最佳答案

您可以与 numpy 数组进行广播比较 -

v = (df.price.values[:, None] > intervals).sum(1)

这可以分配回df -

df['description_contrib'] = v

需要注意的是内存使用情况,尤其是对于较大的数据。速度的公平权衡。

关于python - 根据值数组的条件在 pandas 中分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47751253/

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