我有两个不同的DataFrame。 df
是完整的,sample
用于比较。这是我的数据:
sample.tail()
T1 C C1 C2 C3
0 1 5 0.0 7.0 5.0
df.tail()
T1 T2 C C1 C2 C3
0 1 0 5 4.0 6.0 6.0
1 0 0 5 5.0 4.0 6.0
2 0 1 7 5.0 5.0 4.0
3 1 1 0 7.0 5.0 5.0
4 1 1 5 0.0 7.0 5.0
我从sample
df中选择了一些列,并尝试在df
中找到与sample
这是我到目前为止所做的,但没有运气:
cols = sample.columns
df = df[df[cols] == sample[cols]]
我收到以下错误:
ValueError:只能比较标记相同的DataFrame对象
请帮助我找到解决方法吗?
编辑:预期输出
df.tail()
T1 T2 C C1 C2 C3
0 1 0 5 0.0 7.0 5.0
21 1 1 5 0.0 7.0 5.0
27 1 0 5 0.0 7.0 5.0
34 1 1 5 0.0 7.0 5.0
42 1 1 5 0.0 7.0 5.0
47 1 0 5 0.0 7.0 5.0
51 1 1 5 0.0 7.0 5.0
您可以看到所有数据都与T2之外的样本数据帧匹配。这是我的预期输出
由于
答案 0 :(得分:1)
使用pd.Index.intersection
,您可以使用
cols = sample.columns.intersection(df.columns)
df[df[cols].apply(tuple, axis=1).isin(sample[cols].apply(tuple, axis=1))]