我有df1
和df2
。对于df1
中的每个元素,我想检查它是否存在于df2
并打印df3
df1=['c_1', 'd_1', 'f_1', 'h_1', 'i_1', 'n_1', 'v_1', 'm_1']
df2=[['lia', 'f_1', 'n_1', 'v_1'], ['eli', 'f_1', 'n_1', 'v_1', 'm_1']]
我想要这样的输出:
df3=[('f_1', {'lia': 1}), ('n_1', {'lia': 1}), ('v_1', {'lia': 1}),
('c_1', {'lia': 0}), ('d_1', {'lia': 0}), ('h_1', {'lia': 0}),
('i_1', {'lia': 0}), ('m_1', {'lia': 0}), ('f_1', {'eli': 1}),
...]
我尝试了一些迭代,但它没有奏效。这是我的代码。
def st_pl(line, df1):
ln=line
st=df1
l = ln[0]
if l:
dict_l = {l: 1}
if not l:
dict_l = {l: 0}
li_st = []
size = len(ln)
for i in range(1, size):
tup = (ln[i], dict_l)
li_st.append(tup)
return li_st
答案 0 :(得分:0)
您可以尝试这种方法并从中获取帮助:
df1=['c_1', 'd_1', 'f_1', 'h_1', 'i_1', 'n_1', 'v_1', 'm_1']
df2=[['lia', 'f_1', 'n_1', 'v_1'], ['eli', 'f_1', 'n_1', 'v_1', 'm_1']]
final_ist=[]
for i in df1:
for j in df2:
if i in j:
final_ist.append((i,{j[0]:1}))
else:
final_ist.append((i,{j[0]:0}))
print(final_ist)
输出:
[('c_1', {'lia': 0}), ('c_1', {'eli': 0}), ('d_1', {'lia': 0}),
('d_1', {'eli': 0}),('f_1', {'lia': 1}), ('f_1', {'eli': 1}),
('h_1', {'lia': 0}), ('h_1', {'eli': 0}),('i_1', {'lia': 0}),
('i_1', {'eli': 0}),('n_1', {'lia': 1}), ('n_1', {'eli': 1}),
('v_1', {'lia': 1}), ('v_1', {'eli': 1}),
('m_1', {'lia': 0}), ('m_1', {'eli': 1})]