Python 如何确定N个布尔列的逻辑真值?
我有一个管道,它对一个表执行分析,并添加额外的特性来对该行数据进行分类。在这个玩具箱中,我有一个具有Python 如何确定N个布尔列的逻辑真值?,python,pandas,Python,Pandas,我有一个管道,它对一个表执行分析,并添加额外的特性来对该行数据进行分类。在这个玩具箱中,我有一个具有[id,x,y,z]特征的表,我正在添加has_adj。我不知道如何确定N列的逻辑真值(即,调整搜索中的列数可能是N): 在轴上尝试+=1: df['has_adj'] = df.filter(like='has_adj_').any(axis=1) print(df) df: id x y z has_adj_0 has_adj_1 has_adj 0
[id,x,y,z]
特征的表,我正在添加has_adj
。我不知道如何确定N列的逻辑真值(即,调整搜索中的列数可能是N):
在轴上尝试+=1:
df['has_adj'] = df.filter(like='has_adj_').any(axis=1)
print(df)
df
:
id x y z has_adj_0 has_adj_1 has_adj
0 AX1 10.0 Adj <NA> True False True
1 V0D 3.5 <NA> <NA> False False False
2 G7L 8.0 <NA> Adj False True True
id x y z has_adj_0 has_adj_1 has_adj
0 AX1 10.0调整为真为假为真
1 V0D 3.5错误
2 G7L 8.0调整错误-正确-正确
您的预期输出是什么?对不起。我只是补充一下。任何值T产生T,否则f当您使用Any
函数时,是否?你在哪里受不了了?
df['has_adj'] = df.filter(like='has_adj_').any(axis=1)
print(df)
id x y z has_adj_0 has_adj_1 has_adj
0 AX1 10.0 Adj <NA> True False True
1 V0D 3.5 <NA> <NA> False False False
2 G7L 8.0 <NA> Adj False True True