如何查看列表 A 的成员是否在列表 B 中 pandas 应用
How to see if members of list A are in list B with pandas apply
我正在尝试查看一个列表 A 的元素是否在另一个列表 B 中以及在哪个索引上。我知道它们不是 pandas 结构。但是应该有一种方法可以使用这些列表来获取示例的结果。如果我错了请纠正我,我是 pandas.
的新手
例如
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 表示在列表 B 中出现了 a 中的元素,0 表示没有出现。
python 顺便说一句,还是新手。
我在这里看到了答案,
但我不知道如何将其应用于我的情况。它建议应用 pandas 函数。
我想探索的选项是您使用名为 apply 的函数的选项。这个例子表明它要快得多,而且我使用了一个大数据集。
您可能正在寻找 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
其中 A
和 B
都是系列。
如果你想进行子串比较,你需要一个稍微不同的解决方案,涉及 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
我正在尝试查看一个列表 A 的元素是否在另一个列表 B 中以及在哪个索引上。我知道它们不是 pandas 结构。但是应该有一种方法可以使用这些列表来获取示例的结果。如果我错了请纠正我,我是 pandas.
的新手例如
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 表示在列表 B 中出现了 a 中的元素,0 表示没有出现。
python 顺便说一句,还是新手。
我在这里看到了答案,
我想探索的选项是您使用名为 apply 的函数的选项。这个例子表明它要快得多,而且我使用了一个大数据集。
您可能正在寻找 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
其中 A
和 B
都是系列。
如果你想进行子串比较,你需要一个稍微不同的解决方案,涉及 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