gpt4 book ai didi

python - 调用 pandas 对掩码结果应用函数

转载 作者:行者123 更新时间:2023-12-02 00:03:49 24 4
gpt4 key购买 nike

我想根据掩码中描述的某些条件将函数应用于数据框中的行子集。例如:

mask = (n.city=='No City Found')
n[mask].city = n[mask].address.apply(lambda x: find_city(x))

当我这样做时,pandas 警告我我正试图在 Dataframe 切片的副本上设置一个值。当我检查 Dataframe 时,我发现我的更改没有保留。

如果我使用 mask 创建一个新的 Dataframe 切片 x 并将该函数应用于 x,则应用函数的结果会正确存储在 x 中。

x = n[mask]
x.city = x.address.apply(lambda x: find_city(x))

有没有办法将此数据映射回我的原始 Dataframe,以便它只影响满足原始掩码中描述的条件的行?

或者是否有更简单的方法来执行此类操作?

最佳答案

更新值的正确方法是使用 loc

n.loc[mask, 'city'] = n[mask].address.apply(lambda x: find_city(x))

你也可以不用掩码,以防你想节省变量的内存

n['city']=n.address.apply(
lambda x: find_city(x)
if x.city == 'No City Found' else x.city, axis=1
)

关于python - 调用 pandas 对掩码结果应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61283620/

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