根据布尔值将多个布尔数据帧合并为一个数据帧



我有三个布尔数据帧,它们是同一个字典的一部分。我想有一个输出数据帧,包含所有真实的行。因此,如果一行是True在其中一个数据帧它是True在输出数据帧。如果All数据帧是False,那么输出数据帧就是False

data1 ={"":[True,False,True,False,False]}
data2= {"":[False,True,False,False,False]}
data3= {"":[False,False,False,False,True]}
df1=pd.DataFrame(data1)
df2=pd.DataFrame(data2)
df3=pd.DataFrame(data3)

预期输出:

Output_Data= {"":[True,True,True,False,True]}

您可以在列上使用concatany(axis=1)

out = pd.concat([df1, df2, df3], axis=1).any(axis=1)
print(out)
0     True
1     True
2     True
3    False
4     True
dtype: bool
print({'': out.tolist()})
{'': [True, True, True, False, True]}

您可以在多个DataFrame上使用or,然后使用pandas.to_dict转换为所需的字典,如下所示。

>>> (df1 | df2 | df3).to_dict('list')
{'': [True, True, True, False, True]}

最新更新