File size: 4,962 Bytes
9dcd3f9 948d7f1 7823114 9dcd3f9 f123b98 7823114 948d7f1 7823114 923adf2 948d7f1 923adf2 7823114 948d7f1 7823114 948d7f1 7823114 923adf2 7823114 923adf2 7823114 923adf2 7823114 923adf2 7823114 923adf2 7823114 923adf2 7823114 923adf2 7823114 948d7f1 7823114 923adf2 7823114 948d7f1 7823114 923adf2 7823114 948d7f1 7823114 923adf2 7823114 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
import streamlit as st
from st_aggrid import AgGrid, GridOptionsBuilder
import pandas as pd
def show_table(p1_df, p2_df):
st.write("------------------")
p1_df = p1_df.reset_index(drop=True)
p2_df = p2_df.reset_index(drop=True)
actual_ind = 0
for i in range(len(p1_df) - 1, -1, -2): # stepsize because project matchs in both ways and it should only display a match one time
actual_ind += 1
match_df = pd.DataFrame()
row_from_p1 = p1_df.iloc[[i]]
row_from_p2 = p2_df.iloc[[i]]
# INTEGRATE IN PREPROCESSING !!!
# transform strings to list
row_from_p1["crs_3_code_list"] = [row_from_p1['crs_3_code'].item().split(";")[:-1]]
row_from_p2["crs_3_code_list"] = [row_from_p2['crs_3_code'].item().split(";")[:-1]]
row_from_p1["crs_5_code_list"] = [row_from_p1['crs_3_code'].item().split(";")[:-1]]
row_from_p2["crs_5_code_list"] = [row_from_p2['crs_3_code'].item().split(";")[:-1]]
row_from_p1["sdg_list"] = [row_from_p1['sgd_pred_code'].item()]
row_from_p2["sdg_list"] = [row_from_p2['sgd_pred_code'].item()]
try:
row_from_p1["flag"] = f"https://flagicons.lipis.dev/flags/4x3/{row_from_p1['country'].item()[:2].lower()}.svg"
row_from_p2["flag"] = f"https://flagicons.lipis.dev/flags/4x3/{row_from_p2['country'].item()[:2].lower()}.svg"
except:
row_from_p1["flag"] = "https://flagicons.lipis.dev/flags/4x3/xx.svg"
row_from_p2["flag"] = "https://flagicons.lipis.dev/flags/4x3/xx.svg"
print(row_from_p1["flag"].item())
# Correctly append rows to match_df
st.subheader(f"#{actual_ind}")
st.caption(f"Similarity: {round(row_from_p1['similarity'].item(), 4) * 100}%")
match_df = pd.concat([row_from_p1, row_from_p2], ignore_index=True)
#AgGrid(match_df)
st.dataframe(
match_df[["iati_id", "title_main", "orga_abbreviation", "client", "description_main", "country", "flag", "sdg_list", "crs_3_code_list", "crs_5_code_list"]],
use_container_width = True,
height = 35 + 35 * len(match_df),
column_config={
"iati_id": st.column_config.TextColumn(
"IATI ID",
help="IATI Project ID",
disabled=True,
width="small"
),
"orga_abbreviation": st.column_config.TextColumn(
"Organization",
help="If description not in English, description in other language provided",
disabled=True,
width="small"
),
"client": st.column_config.TextColumn(
"Client",
help="Client organization of customer",
disabled=True,
width="small"
),
"title_main": st.column_config.TextColumn(
"Title",
help="If title not in English, title in other language provided",
disabled=True,
width="large"
),
"description_main": st.column_config.TextColumn(
"Description",
help="If description not in English, description in other language provided",
disabled=True,
width="large"
),
"country": st.column_config.TextColumn(
"Country",
help="Country of project",
disabled=True,
width="small"
),
"flag": st.column_config.ImageColumn(
"Flag",
help="country flag",
width="small"
),
"sdg_list": st.column_config.ListColumn(
"SDG Prediction",
help="Prediction of SDG's",
width="small"
),
"crs_3_code_list": st.column_config.ListColumn(
"CRS 3",
help="CRS 3 code given by organization",
width="small"
),
"crs_5_code_list": st.column_config.ListColumn(
"CRS 5",
help="CRS 5 code given by organization",
width="small"
),
},
hide_index=True,
)
st.write("------------------") |