Pergunta: Estou trabalhando em um projeto Python onde tenho um dataset com duas colunas: "Big List" e "Small List". Meu objetivo é comparar os valores na coluna "Pequena lista" com os valores na coluna "Grande lista" e classificá-los de acordo. Se um valor da coluna "Small List" for encontrado na coluna "Big List", desejo classificar a linha correspondente na coluna "Small List". Além disso, se um valor da coluna "Small List" não for encontrado na coluna "Big List", desejo listá-lo em uma nova coluna chamada "Not Matched to Big List".
Os valores na "Big List" não são exclusivos, mas os valores na "Small List" são exclusivos.
Aqui está um exemplo:
Grande Lista | Lista Pequena |
---|---|
10 | 17 |
2 | 15 |
15 | 42 |
17 | 31 |
30 | 45 |
40 | 30 |
45 | |
47 | |
50 |
Nesse caso, quero comparar cada valor na coluna "Pequena lista" com os valores na coluna "Grande lista". Se for encontrada uma correspondência, desejo classificar a linha correspondente na coluna "Lista pequena". Se uma correspondência não for encontrada, desejo listar o valor na coluna "Não correspondente à lista grande".
Resultado esperado:
Grande Lista | Lista Pequena | Não corresponde à lista grande |
---|---|---|
10 | 31 | |
2 | 42 | |
15 | 15 | |
17 | 17 | |
30 | 30 | |
40 | ||
45 | 45 | |
47 | ||
50 |
Estou lutando para classificar a linha na coluna "Small List" quando uma correspondência é encontrada e como preencher a coluna "Not Matched to Big List" quando não há correspondência. Qualquer ajuda ou sugestão sobre como conseguir isso seria muito apreciada!
Aqui está o código que tenho até agora:
import pandas as pd
data = {'Big List': [10,2,15,17,30,40,45,47,50], 'Small List': [17,15,42,31,45,30]}
df = pd.DataFrame(data)
# Loop through rows and compare values
for index, row in df.iterrows():
if row['Small List'] in df['Big List']:
# Sort the row in the "Small List" column
# Stuck here
else:
# Add value to "Not Matched to Big List" column
# Stuck here
print(df)