繁体   English   中英

如何通过匹配数据框中的行值来更改列值?

[英]How to change column value by matching row value in data frame?

说我确实有下表

经度 纬度 温度 label
X 是的 z 1
p q r 2
一个 b c 1
ķ l 1

我将表存储在 df 中并运行以下数据片段查询。

df1= df.query('longitude == @x and latitude == @y and temperature== @z')

大多数情况下,我得到的是正确的 output。

现在我想更改查询匹配的行的 label 值

df.query('longitude == a and latitude == b and temperature== c')

如何更新查询行匹配的 label 值。 我尝试使用.replace,.iloc,但它们都没有给我正确的结果。

这里应该使用掩码:

df = pd.DataFrame(
    {
        "longitude": ["x", "p", "a", "k"],
        "latitude": ["y", "q", "b", "l"],
        "temperature": ["z", "r", "c", "m"],
        "label": [1, 2, 1, 1],
    }
)

new_label = 3

df["label"] = df["label"].mask(
    (df["longitude"] == "a") & (df["latitude"] == "b") & (df["temperature"] == "c"),
    new_label,
)
df
经度 纬度 温度 label
X 是的 z 1
p q r 2
一个 b c 3
ķ l 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM