gpt4 book ai didi

python - 同时迭代两列并根据条件更改单元格的值

转载 作者:行者123 更新时间:2023-12-03 23:11:27 25 4
gpt4 key购买 nike

我有以下格式的数据框:


指数
Object1-长度
Object1-高度
Object2-长度
Object2-高度


0
19
49
21
52

1
20
50
21
51

2
20
51
20
52

3
19
50
19
52

4
20
50
20
52


它继续使用 Object3、Object4 等等......
我想通过以下方式同时检查两列:

if ObjectX-Length >= 20 and ObjectX-Height >= 50 
然后将 ObjectX 的两个单元格都设置为 1,否则将它们设置为 0
所以这是我想要的表:


指数
Object1-长度
Object1-高度
Object2-长度
Object2-高度


0
0
0
1
1

1
1
1
1
1

2
1
1
1
1

3
0
0
0
0

4
1
1
1
1


有没有办法做到这一点?
编辑:将每个对象的两列合并为一列并将该单元格设置为 0 或 1 也可以!

最佳答案

咱们试试吧:

# length like columns
l = df.filter(like='-Length').columns

# corresponding height columns
h = l.str.rstrip('Length') + 'Height'

# create boolean mask
m = (df[l].ge(20).values & df[h].ge(50).values).astype(int)

# assign the values
df[h], df[l] = m, m
详情:
第一 filter Length像列,然后创建对应的 Height列:
print(l)
['Object1-Length', 'Object2-Length']

print(h)
['Object1-Height', 'Object2-Height']
创建表示 ObjectX-Length >= 20 and ObjectX-Height >= 50 的条件的 bool 掩码:
print(m)
array([[0, 1],
[1, 1],
[1, 1],
[0, 0],
[1, 1]])
将掩码分配给相应的列:
print(df)
Object1-Length Object1-Height Object2-Length Object2-Height
Index
0 0 0 1 1
1 1 1 1 1
2 1 1 1 1
3 0 0 0 0
4 1 1 1 1

关于python - 同时迭代两列并根据条件更改单元格的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65540809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com