我有一个pandas
数据帧和一个数组[index,value]的python列表
我需要通过索引将数据帧和列表连接起来,并选择一个数组列表[i, df['col1'][i]]
,其中value == 1
伪代码:
f = pd.DataFrame([10, 20 ,30, 40, 50...])
l = [[0, -1], [2, 1], [4, 1], [3, 0]
result = f join l where l.value == 1 select [index, f.value]
result: [[2, 30], [4, 50]]
一个选项:
out = (
pd.DataFrame(l, columns=['A', 'B'])
.loc[lambda d: d.pop('B').eq(1)]
.merge(f, left_on='A', right_index=True)
.values.tolist()
)
或者,通过列表理解:
out = [[a, f.at[a, 0]] for a,b in l if b == 1]
输出:
[[2, 30], [4, 50]]