我在数据框中有两列。第一个在每一行中包含一个字符串。第二个包含每一行的一组字符串。我如何使用熊猫函数检查每一行的第一列中的值是否在第二列中以及它的效率?
pd.DataFrame([np.random.randint(5,size = 12),np.random.randint(5,size =(12,5))])。T
如何检查第1列列表中第0列的值
具有列表理解和zip(IMO会比更快apply):
df=df.assign(Check=[a in b for a,b in zip(df[0],df[1])])
Run Code Online (Sandbox Code Playgroud)
0 1 Check
0 4 [4, 4, 2, 3, 0] True
1 4 [1, 0, 2, 1, 4] True
2 0 [2, 1, 1, 2, 2] False
3 0 [0, 3, 3, 2, 3] True
4 4 [3, 0, 0, 3, 1] False
5 1 [0, 2, 0, 3, 4] False
6 0 [4, 3, 4, 1, 1] False
7 1 [2, 0, 0, 3, 1] True
8 2 [3, 3, 3, 2, 4] True
9 2 [3, 0, 0, 4, 1] False
10 0 [3, 3, 3, 4, 3] False
11 1 [0, 3, 3, 2, 1] True
Run Code Online (Sandbox Code Playgroud)
对测试数据的性能:
IIUC,例如:
Col1 Col2
0 0 [0, 1, 2]
1 1 [2, 3, 4]
2 2 [4, 5, 2]
Run Code Online (Sandbox Code Playgroud)
你可以做:
df['Result'] = df.apply(lambda x: x.Col1 in x.Col2, axis = 1)
Run Code Online (Sandbox Code Playgroud)
输出:
Col1 Col2 Result
0 0 [0, 1, 2] True
1 1 [2, 3, 4] False
2 2 [4, 5, 2] True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |