[英]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=1
的mean
,并在比较后转换为 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.