-3

我试图查看一个列表 A 的元素是否在另一个列表 B 中以及在哪个索引上。我知道它们不是熊猫结构。但是应该有一种方法可以使用这些列表来获取示例的结果。如果我错了,请纠正我,我对熊猫更陌生。

例如

A = ['hi', 'I', 'Am', 'A', 'Test']
B = ['Sara', 'bla', 'bar', 'I', 'python', 'Test', 'Bye', 'hi']

然后得到一个结果列表 C

C = [0, 0, 0, 1, 0, 1, 0, 1]

其中 1 表示出现了来自 a 的元素,0 表示没有出现在列表 B 中。

顺便说一句,python 还是新手。我在这里看到了答案, 示例, 但我不知道如何将其应用于我的情况。它建议使用 pandas 函数。

我想探索的选项是使用名为 apply 的函数的选项。该示例表明它要快得多,并且我使用了一个大数据集。

4

1 回答 1

0

您可能正在寻找isin+ astype

B.isin(A).astype(int)

0    0
1    0
2    0
3    1
4    0
5    1
6    0
7    1
dtype: int64

WhereABare 都是系列。

如果要执行子字符串比较,则需要一个稍微不同的解决方案,包括str.findall

B.str.findall('|'.join(A), flags=re.I).str.len().clip(0, 1)

0    1
1    1
2    1
3    1
4    0
5    1
6    0
7    1
dtype: int64
于 2017-11-08T12:36:41.023 回答