gpt4 book ai didi

python - 使用 Numpy 过滤两个数据框

转载 作者:行者123 更新时间:2023-12-04 07:18:32 28 4
gpt4 key购买 nike

我有两个数据框。它们的结构如下:
df



ID


一种
3


4


df b



ID
值(value)


一种
3
100


4
300


4
100


4
150

一种
3
200

一种
3
400


我需要从 df B 的 df A 值中获取每个字母和 ID 组合,然后运行异常值函数。
目前我使用了超过 40,000 行的 A 和 4,500,000 的列表 b

a['Results'] =  a.apply(lambda x: outliers(b[(b['Letter']==x['Letter']) & (b['ID']==x['ID'])]['value'].to_list()),axis=1)
正如您可以想象的那样,这需要永远。我是否犯了一些错误或可以改进此代码的东西?

最佳答案

我首先聚合 [Letter, ID] 的每个组合在 df_b使用 .groupby 进入列表,然后与 df_a 合并并申请您的 outliers后发挥作用。应该更快:

df_a["results"] = df_a.merge(
df_b.groupby(["Letter", "ID"])["Value"].agg(list),
left_on=["Letter", "ID"],
right_index=True,
how="left",
)["Value"].apply(outliers)
print(df_a)

关于python - 使用 Numpy 过滤两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68641244/

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