gpt4 book ai didi

python - 如何将多个参数从 pandas 数据帧传递给函数并将结果返回到数据帧中特定位置的数据帧

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

假设我有一个具有以下柱状结构的以下 pandas 数据框,并且该数据框的标题为 df

index column1 column2 column3
0 2 5 apple
1 4 3 apple
2 6 1 orange
3 8 6 apple
4 10 5 orange

我想搜索数据框,以便它能够识别 df['column3'] == orange 所在的每一行并提取 df['column1'] 的值和df['column2']将该行插入到下面的函数中,然后更改 df[column2'] 的现有值通过函数的输出。

def func(x, y):
return x * 2.0

到目前为止,我已经实现了以下方法,该方法有效,但我怀疑这不是最 Pythonic 的方法,并且可能没有最有效的执行速度。任何建议将不胜感激。

for i in range(len(df.index)):
if df.loc[i, 'column3'] == 'orange':
df.loc[i, 'column2'] = func(df.column1, df.column2)

最佳答案

无需使用apply

您可以简单地使用loc掩码

mask = df['column3'] == "orange"
df.loc[mask, "column2"] = func(df.loc[mask].column1, df.loc[mask].column2)

这比 apply 更简单、更快。

关于python - 如何将多个参数从 pandas 数据帧传递给函数并将结果返回到数据帧中特定位置的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50900646/

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