【发布时间】:2016-07-16 18:54:34
【问题描述】:
我有来自 2 个不同数据框的 2 列。我想检查第 1 列是否是第 2 列的子集。
我使用的是以下代码:
set(col1).issubset(set(col2))
这样做的问题是,如果 col1 只有整数,而 col2 同时有整数和字符串,则返回 false。发生这种情况是因为 col2 的元素被强制转换为字符串。例如,
set([376, 264, 365, 302]) &
set(['302', 'water', 'nist1950', '264', '365', '376'])
我尝试使用熊猫的isin。但是如果 col1 和 col2 是系列,那么这会给出一系列布尔值。我要True or False。
我该如何解决这个问题?有没有我错过的更简单的功能?
编辑 1
添加示例。
col1
0 365
1 376
2 302
3 264
Name: subject, dtype: int64
col2
0 nist1950
1 nist1950
2 water
3 water
4 376
5 376
6 302
7 302
8 365
9 365
10 264
11 264
12 376
13 376
Name: subject, dtype: object
编辑 2
col1 和 col2 可以有整数、字符串、浮点数等。我不想对这些列中的内容做出任何预先判断。
【问题讨论】:
-
你可以使用
col1.isin(col2).all() -
我还是错了。