繁体   English   中英

根据多列的 agg 替换/填充列

[英]replace/fill columns base on agg of multiple columns

我有一个DF如下:

|   feat1 | feat2   | feat3    | feat4   | label |
|--------:|---------|----------|---------|-------|
|  0.1856 | -0.186  | 1.681    | 0.56781 |   0   |
| 0.78671 | 0.1761  | -0.671   | 0.176   |   0   |
|  -1.681 | 0.15689 | -0.18689 | 0.681   |   0   |

我想替换label列,其中所有feat特征的平均值 > 0。我试过这个:

feat = [f for f in df.columns if "feat" in f]
df.loc[df[feat].mean() > 0, "label"] = 1

但它似乎无法正常工作。

您可以使用df.filter过滤所有包含feat的列并计算axis=1mean ,并在比较后转换为 int 。

df['label'] = df.filter(like='feat').mean(1).gt(0).astype(int)
print(df)

     feat1    feat2    feat3    feat4  label
0  0.18560 -0.18600  1.68100  0.56781      1
1  0.78671  0.17610 -0.67100  0.17600      1
2 -1.68100  0.15689 -0.18689  0.68100      0

暂无
暂无

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

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