Python 需要使用dataframe列中的列表值创建列表

Python 需要使用dataframe列中的列表值创建列表,python,pandas,list,dataframe,loc,Python,Pandas,List,Dataframe,Loc,这是我的数据帧: prod_sheet: Product ID 0 Prod1 00P000000000101 1 Prod2 00P000000000105 2 Prod3 00P000000000109 3 Prod4 00P000000000119 4 Prod5 00P000000000120 L=[Prod2,Prod4,Prod5] 列表中存在的产品的Id needed_list=[00P000000000105,00P000000

这是我的数据帧:

prod_sheet:
    Product ID
0   Prod1   00P000000000101
1   Prod2   00P000000000105
2   Prod3   00P000000000109
3   Prod4   00P000000000119
4   Prod5   00P000000000120

L=[Prod2,Prod4,Prod5]
列表中存在的产品的Id

needed_list=[00P000000000105,00P000000000119,00P000000000120]

如果顺序很重要,请使用列表理解:

L=['Prod5','Prod4','Prod3']
s = prod_sheet.set_index('Product')['ID']

needed_list = [s[p] for p in L]
print (needed_list)
['00P000000000120', '00P000000000119', '00P000000000109']
如果订单不重要,请使用:

needed_list = prod_sheet.loc[prod_sheet['Product'].isin(L), 'ID'].tolist()
print (needed_list)
'00P000000000109', '00P000000000119', '00P000000000120']

如果顺序很重要,请使用列表理解:

L=['Prod5','Prod4','Prod3']
s = prod_sheet.set_index('Product')['ID']

needed_list = [s[p] for p in L]
print (needed_list)
['00P000000000120', '00P000000000119', '00P000000000109']
如果订单不重要,请使用:

needed_list = prod_sheet.loc[prod_sheet['Product'].isin(L), 'ID'].tolist()
print (needed_list)
'00P000000000109', '00P000000000119', '00P000000000120']

@RevatiCharhate-但它不是循环解决方案,请删除循环here@RevatiCharhate-太好了!如果我的回答有帮助,别忘了。谢谢。@RevatiCharhate-顺便说一句,订单重要吗?e、 g.
L=[Prod5,Prod4,Prod2]
?然后
所需列表=[00p00000000120,00p00000000119,00p00000000105]
?@RevatiCharhate-但这不是循环解决方案,请删除循环here@RevatiCharhate-太好了!如果我的回答有帮助,别忘了。谢谢。@RevatiCharhate-顺便说一句,订单重要吗?e、 g.
L=[Prod5,Prod4,Prod2]
?然后
所需列表=[00p00000000120,00p00000000119,00p00000000105]