gpt4 book ai didi

python - 遍历 Pandas DataFrame 的行 - 根据另一个系列中的值更改系列值?

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:31 24 4
gpt4 key购买 nike

当遍历 DataFrame 的行时,如何根据同一行中另一个元素的值更改一个元素的值?

我有以下代码:

for index, row in df.iterrows():
if (row["A"] in mult):
row["B"] = row["B"] * mult[row["A"]]

这遍历每一行并查看“A”中的值是否存在于字典中的键中 (mult)。如果它在字典中,则系列“B”乘以来自字典的浮点值。

代码运行时没有报告错误 - 但当我检查 df 时,它在 DataFrame 中没有改变。

谢谢 - 史蒂夫

最佳答案

首先,您正在尝试重新初始化局部变量 row。正确的代码可能如下:

for index,row in df.iterrows():
if row["A"] in mult:
df["B"].iloc[index] = row["B"] * mult[row["A"]]

但是,这是处理中型或大型 DataFrame 的丑陋方式。更多 pythonic 解决方案如下:

df["B"] = df.apply(lambda x: x["B"] * mult[x["A"]] if x["A"] in mult else x["B"], axis=1)

关于python - 遍历 Pandas DataFrame 的行 - 根据另一个系列中的值更改系列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33507236/

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