[英]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.