Python 从另一列列表中获取一列列表中项目的索引
我有一个有两列的数据框Python 从另一列列表中获取一列列表中项目的索引,python,arrays,pandas,numpy,dataframe,Python,Arrays,Pandas,Numpy,Dataframe,我有一个有两列的数据框 column_1 column_2 ["apple","orange"] ["orange", "apple"] ["banana"] ["apple"] 我想要一个结果列,它将告诉列2中的项在列1中是什么索引。如果不存在,返回-1。 例:产量将是 output_column [1,0]
column_1 column_2
["apple","orange"] ["orange", "apple"]
["banana"] ["apple"]
我想要一个结果列,它将告诉列2
中的项在列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]
您的子列表有多大?添加了两个版本的答案。请检查如何在SO上接受答案。非常感谢。