我有三个布尔数据帧,它们是同一个字典的一部分。我想有一个输出数据帧,包含所有真实的行。因此,如果一行是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]}
您可以在列上使用concat
和any(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]}