PANDAS:两个数据框之间的AND和OR



我有两个具有布尔值的相同大小的数据框。是否有一种方法来执行AND, OR或异或函数之间的两个数据框架?

例如

df1:

[False, True, False]  
[True,  False, True]   

df2:

[True, False, False]      
[True, False, False]

df1 OR df2

[True, True, False]
[True, False,True ]

您可以使用numpy.logical_andnumpy.logical_or来完成此任务,即:

import numpy as np
import pandas as pd
df1 = pd.DataFrame([[False,True,False],[True,False,True]])
df2 = pd.DataFrame([[True,False,False],[True,False,False]])
dfor = np.logical_or(df1,df2)
print(dfor)

输出
0      1      2
0  True   True  False
1  True  False   True
df1 = pandas.DataFrame({1: [False, True, False], 2: [True,  False, True]})
df2 = pandas.DataFrame({1: [True, False, False], 2: [True, False, False]})

使用或:

resulting_dataframe_using_OR = pandas.DataFrame({1: (df1[1]|df2[1]), 2: (df1[2]|df2[2])})

使用OR输出:

1      2
0   True   True
1   True  False
2  False   True

使用和:

resulting_dataframe_using_AND = pandas.DataFrame({1: (df1[1]&df2[1]), 2: (df1[2]&df2[2])})

使用AND:

输出
1      2
0  False   True
1  False  False
2  False  False

最新更新