比方说,我有一个像这样的Dataframe DF1:
A B
0 123 997
1 123 998
2 124 999
3 125 997
4 125 998
其他2个数据帧A和B,包含DF1中存在的每个可能项目:
A
a
0 123
1 124
2 125
3 126
4 127
B
b
0 999
1 998
2 997
3 996
4 995
如何以有效的方式检查数据帧A和数据帧B中每个行组合的DF1是否存在,以便得到它的矩阵?
像这样的东西
Existence matrix/dataframe:
999 998 997 996 995
123 False True True False False
124 True False False False False
125 False True True False False
126 False False False False False
127 False False False False False
答案 0 :(得分:2)
您可以使用pd.crosstab
+ reindex
:
df = pd.crosstab(df.A, df.B).reindex(index=A.a,
columns=B.b).fillna(0).astype(bool)
print(df)
b 999 998 997 996 995
a
123 False True True False False
124 True False False False False
125 False True True False False
126 False False False False False
127 False False False False False