File size: 5,217 Bytes
9dcd3f9 7823114 9dcd3f9 c8e0175 f123b98 7823114 948d7f1 7823114 923adf2 948d7f1 6a85a81 948d7f1 6a85a81 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 113 114 115 116 117 118 119 |
import streamlit as st
import pandas as pd
def show_multi_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
try:
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]]
except:
row_from_p1["crs_3_code_list"] = []
row_from_p2["crs_3_code_list"] = []
try:
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]]
except:
row_from_p1["crs_5_code_list"] = []
row_from_p2["crs_5_code_list"] = []
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("------------------") |