繁体   English   中英

df.loc 根据条件更改多列

[英]df.loc change more than one column based on condition

我想尝试的是根据条件更改多个列。

例子(“数据只是为了解释”)=>

import pandas as pd


data = {'s' : ["placementTop","placementProductPage","safgasf", "aslgkmalksg", "ıowjsakguıwa", "placementTop","placementProductPage", "placementTop","placementProductPage",], "State": ["enabled","paused","sagasg", "sagaskg", "sagkşlaksg", "sagaskg", "sagkşlaksg", "sagaskg", "sagkşlaksg"], "x": [10,20,25,30,5,30,5,30,5], "y" : [12,20,25,30,5,20,25,30,5]}

df = pd.DataFrame(data)


filter = df.loc[(df["s"] == "placementTop") & (df["State"] == "enabled"), "x"] = 2


print(df)
                      s       State   x   y
0          placementTop     enabled   2  12
1  placementProductPage      paused  20  20
2               safgasf      sagasg  25  25
3           aslgkmalksg     sagaskg  30  30
4          ıowjsakguıwa  sagkşlaksg   5   5
5          placementTop     sagaskg  30  20
6  placementProductPage  sagkşlaksg   5  25
7          placementTop     sagaskg  30  30
8  placementProductPage  sagkşlaksg   5   5

这对我有用,但我也想同时更改 y 列。

这将为满足条件s == "placementTop"State == "enabled"的行更新xy

df.loc[(df["s"] == "placementTop") & (df["State"] == "enabled"), ["x", "y"]] = 2, 3

输出:

                      s       State  x   y
0          placementTop     enabled  2  3
1  placementProductPage      paused 20  20
2               safgasf      sagasg 25  25
3           aslgkmalksg     sagaskg 30  30
4          ıowjsakguıwa  sagkşlaksg  5   5
5          placementTop     sagaskg 30  20
6  placementProductPage  sagkşlaksg  5  25
7          placementTop     sagaskg 30  30
8  placementProductPage  sagkşlaksg  5   5

暂无
暂无

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

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