python - 从另一列列表中获取一列列表中的项目索引
问题描述
我有一个包含两列的数据框
column_1 column_2
["apple","orange"] ["orange", "apple"]
["banana"] ["apple"]
我想要一个结果列,它将告诉 . 中的项目column_2
是什么索引column_1
。如果不存在则返回 -1。例如:输出将是
output_column
[1,0]
[-1]
解决方案
如果您的子列表很小:
df['output_column'] = df.apply(lambda x:[x.column_1.index(item) if item in x.column_1 else -1 for item in x.column_2],axis=1)
如果您的子列表很大:
df['output_column'] = df.apply(lambda x:[dict((value,idx) for idx,value in enumerate(x.column_1)).get(item,-1) for item in x.column_2],axis=1)
输出:
column_1 column_2 output_column
0 [apple, orange] [orange, apple] [1, 0]
1 [banana] [apple] [-1]
推荐阅读
- java - 关于局部变量的内联匿名类如何在后台工作?
- delphi - 如何为分配有`VK_NUMPAD0`的菜单项快捷方式显示“NUMERIC KEYPAD”?
- java - Cassandra 中的单数据列与多列
- php - Symfony 文件系统 chmod() 设置了不正确的权限
- r - R:在数据框/矩阵的某些列中采样 n 个元素并替换它们的值
- javascript - 如何更改 HTML 站点上输入字段中最后 2 个字符的字体大小?
- kotlin - FirebaseMessagingService() 在后台,如何将标题保存为变量
- power-automate - Excel 启动错误:ArgumentNullException
- rust - (如何)我可以在递归函数中检索引用吗?
- html - 如何使填充左匹配边距:其他元素的自动