Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从另一列列表中获取一列列表中项目的索引_Python_Arrays_Pandas_Numpy_Dataframe - Fatal编程技术网

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上接受答案。非常感谢。