Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import pickle | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import altair as alt | |
import plotly.graph_objects as go | |
import plotly.express as px | |
import statistics as stat | |
from streamlit_echarts import st_echarts | |
from streamlit_pandas_profiling import st_profile_report | |
from st_aggrid import AgGrid | |
# import pandas_profiling | |
from streamlit_vega_lite import vega_lite_component, altair_component | |
from statistics import mean | |
from datetime import datetime | |
import copy | |
st.set_page_config( | |
page_title="Real Time Social Medias Analysis", | |
page_icon="🧊", | |
layout="wide", | |
initial_sidebar_state="expanded", | |
menu_items={ | |
'Get Help':None, | |
'Report a bug': None, | |
'About': "# This app gather social medias posts of 31 companies all around the world and then analysing it." | |
} | |
) | |
############ functions needed inside st | |
def make_clickable(link): | |
if link!="": | |
if "=" in link: | |
text = link.split('=')[0] | |
linki=link.split('=')[1] | |
return f'<a target="_blank" href="{linki}">{text}</a>' | |
else: | |
return link | |
else: | |
return "" | |
def check_password(): | |
"""Returns `True` if the user had the correct password.""" | |
def password_entered(): | |
"""Checks whether a password entered by the user is correct.""" | |
if st.session_state["password"] == "etka": | |
st.session_state["password_correct"] = True | |
del st.session_state["password"] # don't store password | |
else: | |
st.session_state["password_correct"] = False | |
if "password_correct" not in st.session_state: | |
# First run, show input for password. | |
st.text_input( | |
"Password", type="password", on_change=password_entered, key="password" | |
) | |
return False | |
elif not st.session_state["password_correct"]: | |
# Password not correct, show input + error. | |
st.text_input( | |
"Password", type="password", on_change=password_entered, key="password" | |
) | |
st.error("😕 Password incorrect") | |
return False | |
else: | |
# Password correct. | |
return True | |
jkl=False | |
if check_password(): | |
jkl=True | |
national_company_name_fa=['افق کوروش', 'جانبو', 'رفاه', 'فروشگاه هفت', 'هایپر استار', 'هایپر می', 'توی توی', 'شهروند', 'یاس', 'سورنا', 'وین مارکت', 'کیوان', 'فروشگاه سروش', 'سبوس', 'دیجی کالا', 'اکالا', 'ایمالز', 'اسنپ مارکت', 'فروشگاه کاله'] | |
international_company_name_fa=['والمارت', 'کروگر', 'کاستکو', 'بیم مارکت', 'میگروس', 'ساوکو', 'لولو هاپر مارکت', 'گروه یونیون', 'ادکا', 'آلدی', 'کارفور', 'بیلا راشا'] | |
company_name1_fa=national_company_name_fa+international_company_name_fa | |
insta_accounts=['okcs.ir','canbo.ir','myrefah','haftstores','hyperstar_ir','hyperme.chainstores','toytoy.ir','shahrvand','yassgroup.official','surena.cs','winmarketco','k1megastore','soroush.chain.store','saboosgroup','digikalacom','okalaclub','emalls_site','snappmarket','kallehbrand','walmart','krogerco','costco','bimturkiye','migros_tr','saveco','luluhypermarkets','union.coop','edeka','aldiusa','carrefour_iraq','billarussia'] | |
company_name=['Ofogh Kouroush','Canbo','Refah','Haft Stores','Hyperstar','Hyper Me','Toy Toy','Shahrvand','Yaas','Surena','Win Market','K 1','Soroush Chain Store','Saboos Group','DigiKala','Okala','Emalls','Snapp Market','Kalleh Store','Walmart','Kroger','Costco','Bim','Migros','Save','LuLu Hypermarkets','Union','Edeka','Aldi','Carrefour','Billa Russia'] | |
company_name1=['Ofogh Kouroush','Canbo','Refah','Haft Stores','Hyperstar','Hyper Me','Toy Toy','Shahrvand','Yaas','Surena','Win Market','K 1','Soroush Chain Store','Saboos Group','DigiKala','Okala','Emalls','Snapp Market','Kalleh Store','Walmart','Kroger','Costco','Bim','Migros','Save','LuLu Hypermarkets','Union','Edeka','Aldi','Carrefour','Billa Russia'] | |
company_name2=['Ofogh_Kouroush','Canbo','Refah','Haft_Stores','Hyperstar','Hyper_Me','Toy_Toy','Shahrvand','Yaas','Surena','Win_Market','K_1','Soroush_Chain_Store','Saboos_Group','DigiKala','Okala','Emalls','Snapp_Market','Kalleh_Store','Walmart','Kroger','Costco','Bim','Migros','Save','LuLu_Hypermarkets','Union','Edeka','Aldi','Carrefour','Billa_Russia'] | |
national_insta_accounts = ['okcs.ir', 'canbo.ir', 'myrefah', 'haftstores', 'hyperstar_ir', 'hyperme.chainstores', 'toytoy.ir', 'shahrvand', 'yassgroup.official', 'surena.cs', 'winmarketco', 'k1megastore', 'soroush.chain.store', 'saboosgroup', 'digikalacom', 'okalaclub', 'emalls_site', 'snappmarket', 'kallehbrand'] | |
international_insta_accounts = ['walmart', 'krogerco', 'costco', 'bimturkiye', 'migros_tr', 'saveco', 'luluhypermarkets', 'union.coop', 'edeka', 'aldiusa', 'carrefour_iraq', 'billarussia'] | |
national_company_name = ['Ofogh Kouroush', 'Canbo', 'Refah', 'Haft Stores', 'Hyperstar', 'Hyper Me', 'Toy Toy', 'Shahrvand', 'Yaas', 'Surena', 'Win Market', 'K 1', 'Soroush Chain Store', 'Saboos Group', 'DigiKala', 'Okala', 'Emalls', 'Snapp Market', 'Kalleh Store'] | |
international_company_name = ['Walmart', 'Kroger', 'Costco', 'Bim', 'Migros', 'Save', 'LuLu Hypermarkets', 'Union', 'Edeka', 'Aldi', 'Carrefour', 'Billa Russia'] | |
national_company_name2 = ['Ofogh_Kouroush', 'Canbo', 'Refah', 'Haft_Stores', 'Hyperstar', 'Hyper_Me', 'Toy_Toy', 'Shahrvand', 'Yaas', 'Surena', 'Win_Market', 'K_1', 'Soroush_Chain_Store', 'Saboos_Group', 'DigiKala', 'Okala', 'Emalls', 'Snapp_Market', 'Kalleh_Store'] | |
international_company_name2 = ['Walmart', 'Kroger', 'Costco', 'Bim', 'Migros', 'Save', 'LuLu_Hypermarkets', 'Union', 'Edeka', 'Aldi', 'Carrefour', 'Billa_Russia'] | |
ide = [3145372723, 2965548667, 1988671655, 2197031285, 2233092127, 7485093484, 1181917352, 547966386, 2104826426, 7706142910, 7621001555, 4517720528, 1682386117, 1734407253, 1434739621, 6223711957, 1688949901, 7625600229, 536309671, 391362994, 1372092025, 1286044267, 6428046303, 324691922, 193450010, 1109269555, 1969219287, 1501689572, 525355730, 1494499024, 3646541728] | |
ide_national = [3145372723, 2965548667, 1988671655, 2197031285, 2233092127, 7485093484, 1181917352, 547966386, 2104826426, 7706142910, 7621001555, 4517720528, 1682386117, 1734407253, 1434739621, 6223711957, 1688949901, 7625600229, 536309671] | |
ide_international =[391362994, 1372092025, 1286044267, 6428046303, 324691922, 193450010, 1109269555, 1969219287, 1501689572, 525355730, 1494499024, 3646541728] | |
Website=['https://www.okcs.com','http://canbo.ir','http://refah.ir','http://www.7haftstores.com/Pages/index.aspx','https://www.hyperstariran.com','https://www.hyperme.ir','https://link.toytoy.ir/','https://www.shahrvand.ir','https://www.yassgroup.ir','https://surenacs.com','http://winmarketco.com','https://k1stores.com/?page_id=116','https://supersoroush.com','https://saboosgroup.ir','https://www.digikala.com','https://okala.com','https://emalls.ir','https://snapp.market','https://gilan.kalleh.com','https://www.walmart.com','https://www.kroger.com','https://www.costco.ca','https://www.bim.com.tr/Categories/104/magazalar.aspx','https://www.migros.com.tr','https://www.saveco.com','https://www.luluhypermarket.com/en-ae/','https://corporate.unioncoop.ae/en/online-shopping/','https://www.edeka.de','https://www.aldi.us','https://www.carrefouriraq.com','https://www.billa.ru'] | |
Instag=['https://www.instagram.com/okcs.ir/','https://www.instagram.com/canbo.ir/','https://www.instagram.com/myrefah/','https://www.instagram.com/haftstores/','https://www.instagram.com/hyperstar_ir/','https://www.instagram.com/hyperme.chainstores/','https://www.instagram.com/khaneh_kashaneh/','https://www.instagram.com/shahrvandeshop/','https://www.instagram.com/yassgroup.official/','https://www.instagram.com/surena.cs/','https://www.instagram.com/winmarketco/','https://www.instagram.com/k1megastore/','https://www.instagram.com/soroush.chain.store','https://www.instagram.com/saboosgroup/?hl=en','https://www.instagram.com/digikalacom/','https://www.instagram.com/okalaclub/','https://www.instagram.com/emalls_site/','https://www.instagram.com/snappmarket/','https://www.instagram.com/kallehbrand/','https://www.instagram.com/walmart/','https://www.instagram.com/krogerco/?hl=en','https://www.instagram.com/costco/?hl=en','https://www.instagram.com/bimturkiye/?hl=tr','https://www.instagram.com/migrossanalmarket/','https://www.instagram.com/saveco/','https://www.instagram.com/luluhypermarkets/','https://www.instagram.com/union.coop/','https://www.instagram.com/edeka/','https://www.instagram.com/aldiusa/','https://www.instagram.com/carrefour_iraq/','https://www.instagram.com/billarussia/'] | |
facebo=['https://www.facebook.com/ofoghkooroshstores','','','','','','','','','','https://www.facebook.com/winmarketco','https://www.facebook.com/profile.php?id=100030590948072','','','','','','','','https://www.facebook.com/walmart','https://www.facebook.com/Kroger/','https://www.facebook.com/CostcoCanada','https://www.facebook.com/bimturkiye','https://www.facebook.com/MSanalMarket','https://www.facebook.com/Savecoq8/','https://www.facebook.com/LuLuHypermarket/?brand_redir=1665762276970506','https://www.facebook.com/union.cooperative/','https://www.facebook.com/EDEKA','https://www.facebook.com/ALDI.USA','https://www.facebook.com/Carrefour.Iraq/','https://www.facebook.com/billa.ru'] | |
twitt=['https://twitter.com/ofoghkoorosh','','','','','','','','','','https://twitter.com/winmarketco1/','https://twitter.com/K1Megastore','','','https://twitter.com/digikalacom','','','','','https://twitter.com/Walmart','https://twitter.com/Kroger','','','https://twitter.com/MSanalMarket','https://twitter.com/savecoQ8','https://twitter.com/luluhypr','https://twitter.com/UnionCoop','https://twitter.com/AldiUSA','','',''] | |
youtu=['','','','','','','','','','','','','','','','','','','','https://www.youtube.com/user/Walmart','https://www.youtube.com/user/kroger','','https://www.youtube.com/channel/UClAHcndi08TXV0U3osnhQAQ/featured','https://www.youtube.com/user/migrossanalmarket/','https://www.youtube.com/channel/UCfEyO6rTOeca5SUeB3Wuw2Q','https://www.youtube.com/user/luluhypermarkets','https://www.youtube.com/user/unioncoop','https://www.youtube.com/user/aldiusa?feature=watch','https://www.youtube.com/user/aldiusa?feature=watch','https://www.youtube.com/user/CarrefourIraq/videos','https://www.youtube.com/channel/UCSx84zsrpnikJX2PDnOYbMA?sub_confirmation=1'] | |
pintres=['','','','','','','','','','','','','','','','','','','','https://www.pinterest.de/walmart/','https://www.pinterest.com/krogerco/','','','','','','https://www.pinterest.de/edeka/','https://www.pinterest.de/aldiusa/','','',''] | |
Linkdi=['https://www.linkedin.com/checkpoint/challengesV2/AQHGa5p3pWbEFgAAAXLmpWYtwLd1QPiyxE9LOCOU9YHEaZPoxyjNMuqSC2L4KiNIl-X079FNwycCwiZrh5wcGQYo-ansLaV8zg','https://www.linkedin.com/company/everest-modern-pars-chain-stores','','https://www.linkedin.com/company/oshanak-chain-stores-company-human-resources-department-','','','','','','','https://www.linkedin.com/company/winmarketco/','','','','https://www.linkedin.com/company/digikala/','','','','','','','','','','https://www.linkedin.com/authwall?trk=ripf&trkInfo=AQETU2kUtBRQNQAAAXLm9bl4bQDBlvDIfUZxUa_dLtjv3tqtxQfJEqEOxPkGITmOwZEh0VBky4JTEPPI2K-JLjqlevFNqsv1NweE9feyVANdc3JGzGQkZ2kSVeBnXF8wsBf4gFc=&originalReferer=&sessionRedirect=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fsaveco','','https://www.linkedin.com/authwall?trk=ripf&trkInfo=AQHx-TF6N6AmVQAAAXLm-34II5OTK0P5oy4dX42TB2T2yQSTNcgCIa4u3B00JR2NJtdKGbQq4MTAX6o-vlhxIN8kUcHA8ICQPIA2g5qGTmqNTwypN3CIhy6Gm-XG5xi-1HkJQVU=&originalReferer=&sessionRedirect=https%3A%2F%2Fae.linkedin.com%2Fin%2Funioncoop','','','',''] | |
Telegra=['https://t.me/okclub','https://telegram.me/canbo','http://telegram.me/myrefah','https://telegram.me/HAFTSTORESS','','https://telegram.me/hyperme_ir','https://t.me/hyperfamili','','','','http://telegram.me/winmarketco','https://t.me/k1megastore','','https://t.me/saboosgroup','','https://t.me/okala_club1/','','','','','','','','','','','','','','',''] | |
Whatsap=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''] | |
Soru=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''] | |
Bale=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''] | |
igap=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''] | |
aparat=['https://www.aparat.com/okclub','','','','https://www.aparat.com/Hyperstariran','','','https://www.aparat.com/shahrvand.ir','','https://www.aparat.com/surenacs','https://www.aparat.com/winmarketco','https://www.aparat.com/k1megastore','','','https://www.aparat.com/digikala/دیجی_کالا','https://www.aparat.com/okala/','','','','','','','','','','','','','','',''] | |
robica=['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''] | |
kindii=["Takhfif","Jashn","Mosabeghe","Mahsol"] | |
kindii_fa=["تخفیف","جشنواره","مسابقه","ارتقای محصول"] | |
########## load the dataset | |
data=pickle.load(open("data/data.pkl","rb")) | |
######## make sheet 1 | |
company=national_company_name_fa+["کل","٪ شرکت ها","میانگین حساب کاربری هر شرکت"] | |
instagram=["*" for i in range(19)]+["19","100",""] | |
facebook=["*" if i==0 or i==10 or i==11 else "" for i in range(19)]+["3","15.79",""] | |
twitter=["*" if i==0 or i==10 or i==11 or i==14 else "" for i in range(19)]+["4","21.05",""] | |
linkedin=["*" if i==0 or i==10 or i==1 or i==14 or i==3 else "" for i in range(19)]+["5","26.32",""] | |
telegram=["*" if i<=3 or i==5 or i==6 or i==10 or i==11 or i==13 or i==15 else "" for i in range(19)]+["10","52.63",""] | |
Aparat=["*" if i==0 or i==4 or i==7 or i==10 or i==9 or i==10 or i==15 or i==14 else "" for i in range(19)]+["8","42.11",""] | |
sorosh=["" for i in range(19)]+["0","0",""] | |
bale=["" for i in range(19)]+["0","0",""] | |
igap=["" for i in range(19)]+["0","0",""] | |
robica=["" for i in range(19)]+["0","0",""] | |
total=['6', '3', '2', '3', '2', '2', '2', '2', '1', '2', '6', '5', '1', '2', '4', '3', '1', '1', '1', '49', '', ''] | |
website_national=[f"*={Website[i]}" if Website[i]!="" else "" for i in range(19)]+["19","100","2.58"] | |
insta_national=[f"*={Instag[i]}" if Instag[i]!="" else "" for i in range(19)]+["19","100",""] | |
facebook_national=[f"*={facebo[i]}" if facebo[i]!="" else "" for i in range(19)]+["3","15.79",""] | |
twitter_national=[f"*={twitt[i]}" if twitt[i]!="" else "" for i in range(19)]+["4","21.05",""] | |
linkedin_natioanl=[f"*={Linkdi[i]}" if Linkdi[i]!="" else "" for i in range(19)]+["5","26.32",""] | |
aparat_national=[f"*={aparat[i]}" if aparat[i]!="" else "" for i in range(19)]+["8","42.11",""] | |
telegram_national=[f"*={Telegra[i]}" if Telegra[i]!="" else "" for i in range(19)]+["10","52.63",""] | |
sheet1=pd.DataFrame(data={"شرکت ها":company ,"وب سایت":website_national,"اینستاگرام":insta_national,"فیسبوک":facebook_national, | |
"توییتر":twitter_national,"لینکدین":linkedin_natioanl,"تلگرام":telegram_national, | |
"آپارات":aparat_national,"کل":total | |
}) | |
for j in ["وب سایت","اینستاگرام","فیسبوک","توییتر","لینکدین","تلگرام","آپارات"]: | |
sheet1[j]=sheet1[j].apply(make_clickable) | |
sheet1=sheet1.to_html(escape=False) | |
del company,instagram,facebook,twitter,linkedin,telegram,Aparat,sorosh,bale,igap,robica,total,website_national,insta_national,facebook_national,twitter_national,linkedin_natioanl,aparat_national,telegram_national | |
sheet7_0data=[6,3,2,3,2,2,2,2,1,2,6,5,1,2,4,3,1,1,1] | |
dfsheet0= pd.DataFrame(data={"Companies":national_company_name_fa,"The Number of Accounts":sheet7_0data}) | |
company=international_company_name_fa+["کل","٪ شرکتها","میانگین حساب کاربری هر شرکت"] | |
instagram=["*" for i in range(12)]+["12","100","2.53"] | |
facebook=["*" for i in range(12)]+["12","100",""] | |
pintrest=["*" if i<=1 or i==7 or i==8 else "" for i in range(12)]+["4","33.33",""] | |
twitter=["*" if i<=1 or (i>=4 and i<=8) else "" for i in range(12)]+["7","58.33",""] | |
youtube=["*" if i<=1 or (i>=3 and i<=11) else "" for i in range(12)]+["11","91.67",""] | |
linkedin=["*" if i==5 or i==7 else "" for i in range(12)]+["2","16.67",""] | |
whatsapp=["" for i in range(12)]+["0","0",""] | |
total=['5', '5', '2', '3', '4', '5', '4', '6', '5', '3', '3', '3', '48',"",""] | |
insta_international=[f"*={Instag[i+19]}" if Instag[i+19]!="" else "" for i in range(12)]+["12","100",""] | |
website_international=[f"*={Website[i+19]}" if Website[i+19]!="" else "" for i in range(12)]+["12","100","2.53"] | |
facebook_international=[f"*={facebo[i+19]}" if facebo[i+19]!="" else "" for i in range(12)]+["12","100",""] | |
twitter_international=[f"*={twitt[i+19]}" if twitt[i+19]!="" else "" for i in range(12)]+["7","58.33",""] | |
linkedin_internatioanl=[f"*={Linkdi[i+19]}" if Linkdi[i+19]!="" else "" for i in range(12)]+["2","16.67",""] | |
youtube_international=[f"*={youtu[i+19]}" if youtu[i+19]!="" else "" for i in range(12)]+["11","91.67",""] | |
pintrest_international=[f"*={pintres[i+19]}" if pintres[i+19]!="" else "" for i in range(12)]+["4","33.33",""] | |
sheet1_1=pd.DataFrame(data={"شرکت ها":company,"وب سایت":website_international,"اینستاگرام":insta_international,"فیسبوک":facebook_international,"پینترست":pintrest_international, | |
"توییتر":twitter_international,"یوتیوب":youtube_international,"لینکدین":linkedin_internatioanl,"کل":total | |
}) | |
for j in ["وب سایت","اینستاگرام","فیسبوک","توییتر","لینکدین","یوتیوب","پینترست"]: | |
sheet1_1[j]=sheet1_1[j].apply(make_clickable) | |
sheet1_1=sheet1_1.to_html(escape=False) | |
del company,instagram,facebook,pintres,twitter,youtube,linkedin,whatsapp,total,insta_international,website_international,facebook_international,twitter_international,linkedin_internatioanl,youtube_international,pintrest_international | |
sheet7_0data=[5,5,2,3,4,5,4,6,5,3,3,3] | |
dfsheet0_1 = pd.DataFrame(data={"Companies":international_company_name_fa,"The Number of Accounts":sheet7_0data}) | |
source0_1 = pd.DataFrame({"Popularities": [12,12,4,7,11,2,0],"Social Medias":['Instagram','FaceBook','Pintrest','Twitter','Youtube','LinkedIn','WhatsApp']}) | |
###### make sheet2 dataframe | |
followers=[] | |
following=[] | |
posts=[] | |
for i in national_company_name2: | |
followers.append(data["information"][i]["bio"]["followers"]) | |
following.append(data["information"][i]["bio"]["following"]) | |
posts.append(data["information"][i]["bio"]["posts_count"]) | |
sheet2=pd.DataFrame(data={"شرکت ها":national_company_name_fa,"تعداد دنبال کنندگان":followers,"تعداد دنبال کرده ها":following,"تعداد پست ها":posts}) | |
sheet2bar=pd.DataFrame(data={"Companies":national_company_name_fa,"Followers":followers}) | |
sheet2barpost=pd.DataFrame(data={"Companies":national_company_name_fa,"Number of posts":posts}) | |
sheet3followers=followers | |
followers=[] | |
following=[] | |
posts=[] | |
for i in international_company_name2: | |
followers.append(data["information"][i]["bio"]["followers"]) | |
following.append(data["information"][i]["bio"]["following"]) | |
posts.append(data["information"][i]["bio"]["posts_count"]) | |
sheet2_1=pd.DataFrame(data={"شرکت ها":international_company_name_fa,"تعداد دنبال کنندگان":followers,"تعداد دنبال کرده ها":following,"تعداد پست ها":posts}) | |
sheet2bar_1=pd.DataFrame(data={"Companies":international_company_name_fa,"Followers":followers}) | |
sheet2barpost_1=pd.DataFrame(data={"Companies":international_company_name_fa,"Number of posts":posts}) | |
sheet3_1followers=followers | |
del followers,following,posts | |
######### make sheet 3 for national and international companies post analysis | |
temp=["بیشترین تعداد پسندیده شدن" ,"بیشترین تعداد نظرات","بیشترین تعداد بازدی","میانگین تعداد پسندیده شدن","میانگین تعداد نظرات","میانگین تعداد بازدید","میانگین مشارکت","٪ تصاویر","٪ ویدیو ها","میانگین روزانه تعداد پست","میانگین ساعتی تعداد پست ها"] | |
temp2=["max_like","max_comment","max_view","ave_like","ave_comment","ave_view","ave_participation","percent_image","percent_video","ave_post_per_day","ave_post_per_hour"] | |
company=[] | |
time_horizon=[] | |
last_month=[] | |
last_three_months=[] | |
overal=[] | |
tir2=[last_month,last_three_months,overal] | |
sheet3like=[[] for i in range(3)] | |
sheet3comment=[[] for i in range(3)] | |
sheet3view=[[] for i in range(3)] | |
sheet3participation=[[] for i in range(3)] | |
sheet3image=[[] for i in range(3)] | |
sheet3postperday=[[] for i in range(3)] | |
tir=["last_month","last_three_months","overal"] | |
for i in national_company_name2: | |
index=national_company_name2.index(i) | |
for j in temp: | |
if temp.index(j)==0: | |
company.append(national_company_name_fa[index]) | |
else : | |
company.append("") | |
time_horizon.append(j) | |
for j in tir: | |
index=tir.index(j) | |
for t in temp2: | |
if temp2.index(t)==7 or temp2.index(t)==8: | |
tir2[index].append("{:.0f}".format(data["information"][i]["analysis"]["participation"][j][t]*100)+" %") | |
if temp2.index(t)==7 : | |
sheet3image[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
elif temp2.index(t)==9 or temp2.index(t)==10: | |
tir2[index].append("{:.2f}".format(data["information"][i]["analysis"]["participation"][j][t])) | |
if temp2.index(t)==9 : | |
sheet3postperday[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
else: | |
tir2[index].append("{:.0f}".format(data["information"][i]["analysis"]["participation"][j][t])) | |
if t=="ave_like": | |
sheet3like[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
elif t=="ave_comment": | |
sheet3comment[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
elif t=="ave_view": | |
sheet3view[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
elif t=="ave_participation": | |
sheet3participation[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
sheet3=pd.DataFrame(data={"شرکت ها":company,"افق زمانی":time_horizon,"یک ماه اخیر":tir2[0],"سه ماه اخیر":tir2[1],"کل":tir2[2]}) | |
del company,time_horizon,tir2,last_month,last_three_months,overal | |
temp=["بیشترین تعداد پسندیده شدن" ,"بیشترین تعداد نظرات","بیشترین تعداد بازدی","میانگین تعداد پسندیده شدن","میانگین تعداد نظرات","میانگین تعداد بازدید","میانگین مشارکت","٪ تصاویر","٪ ویدیو ها","میانگین روزانه تعداد پست","میانگین ساعتی تعداد پست ها"] | |
temp2=["max_like","max_comment","max_view","ave_like","ave_comment","ave_view","ave_participation","percent_image","percent_video","ave_post_per_day","ave_post_per_hour"] | |
company=[] | |
time_horizon=[] | |
last_month=[] | |
last_three_months=[] | |
overal=[] | |
tir2=[last_month,last_three_months,overal] | |
sheet3like_1=[[] for i in range(3)] | |
sheet3comment_1=[[] for i in range(3)] | |
sheet3view_1=[[] for i in range(3)] | |
sheet3participation_1=[[] for i in range(3)] | |
sheet3image_1=[[] for i in range(3)] | |
sheet3postperday_1=[[] for i in range(3)] | |
tir=["last_month","last_three_months","overal"] | |
for i in international_company_name2: | |
index=international_company_name2.index(i) | |
for j in temp: | |
if temp.index(j)==0: | |
company.append(international_company_name_fa[index]) | |
else : | |
company.append("") | |
time_horizon.append(j) | |
for j in tir: | |
index=tir.index(j) | |
for t in temp2: | |
if temp2.index(t)==7 or temp2.index(t)==8: | |
tir2[index].append("{:.0f}".format(data["information"][i]["analysis"]["participation"][j][t]*100)+" %") | |
if temp2.index(t)==7 : | |
sheet3image_1[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
elif temp2.index(t)==9 or temp2.index(t)==10: | |
tir2[index].append("{:.2f}".format(data["information"][i]["analysis"]["participation"][j][t])) | |
if temp2.index(t)==9 : | |
sheet3postperday_1[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
else: | |
tir2[index].append("{:.0f}".format(data["information"][i]["analysis"]["participation"][j][t])) | |
if t=="ave_like": | |
sheet3like_1[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
elif t=="ave_comment": | |
sheet3comment_1[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
elif t=="ave_view": | |
sheet3view_1[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
elif t=="ave_participation": | |
sheet3participation_1[index].append(data["information"][i]["analysis"]["participation"][j][t]) | |
sheet3_1=pd.DataFrame(data={"شرکت ها":company,"افق زمانی":time_horizon,"یک ماه اخیر":tir2[0],"سه ماه اخیر":tir2[1],"کل":tir2[2]}) | |
del tir2,company | |
#################### sheet 4 hashtag | |
company=[] | |
temp=["میانگین تعداد # ها در هر پست","بیشترین تعداد # در یک پست","کم ترین تعداد # در یک پست","محبوب ترین # های استفاده شده"] | |
time_horizon=[] | |
tom=[[],[],[]] | |
hori=["last_month","last_three_months","overal"] | |
avermax=[[[],[],[]],[[],[],[]]] | |
kori=["averge_per_post","max_number","min_number","most_common"] | |
for i in national_company_name2: | |
for t in temp: | |
if temp.index(t)==0: | |
company.append(national_company_name_fa[national_company_name2.index(i)]) | |
else: | |
company.append("") | |
time_horizon.append(t) | |
for j in range(3): | |
for c in kori: | |
if c=="most_common": | |
if len(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c]) !=0 : | |
h="" | |
for g in range(len(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c])): | |
if g!=len(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c])-1: | |
h+=data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c][g][0]+" - " | |
else: | |
h+=data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c][g][0] | |
tom[j].append(h) | |
else: | |
tom[j].append("") | |
else: | |
tom[j].append("{:.2f}".format(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c])) | |
if c=="averge_per_post": | |
avermax[0][j].append(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c]) | |
elif c=="max_number": | |
avermax[1][j].append(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c]) | |
sheet4=pd.DataFrame(data={"شرکتها":company,"افق زمانی":time_horizon,"یک ماه اخیر":tom[0],"سه ماه اخیر":tom[1],"کل":tom[2]}) | |
capdia40=[] | |
for i in range(2): | |
capdia40.append(pd.DataFrame( | |
{ | |
"Company":national_company_name_fa, | |
"Last Month":avermax[i][0], | |
"Last Three Months":avermax[i][1], | |
"Overal":avermax[i][2]}, | |
columns=['Company', 'Last Month', 'Last Three Months','Overal'] | |
)) | |
del h,j,c,t,i,kori,tom,time_horizon,temp,company,avermax | |
company=[] | |
temp=["میانگین تعداد # ها در هر پست","بیشترین تعداد # در یک پست","کم ترین تعداد # در یک پست","محبوب ترین # های استفاده شده"] | |
time_horizon=[] | |
tom=[[],[],[]] | |
hori=["last_month","last_three_months","overal"] | |
avermax=[[[],[],[]],[[],[],[]]] | |
kori=["averge_per_post","max_number","min_number","most_common"] | |
for i in international_company_name2: | |
for t in temp: | |
if temp.index(t)==0: | |
company.append(international_company_name_fa[international_company_name2.index(i)]) | |
else: | |
company.append("") | |
time_horizon.append(t) | |
for j in range(3): | |
for c in kori: | |
if c=="most_common": | |
if len(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c]) !=0 : | |
h="" | |
for g in range(len(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c])): | |
if g!= len(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c])-1: | |
h+=data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c][g][0]+" - " | |
else: | |
h+=data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c][g][0] | |
tom[j].append(h) | |
else: | |
tom[j].append("") | |
else: | |
tom[j].append("{:.2f}".format(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c])) | |
if c=="averge_per_post": | |
avermax[0][j].append(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c]) | |
elif c=="max_number": | |
avermax[1][j].append(data["information"][i]["analysis"]["hashtag"][hori[j]]["all_posts_type"][c]) | |
sheet4_1=pd.DataFrame(data={"شرکتها":company,"افق زمانی":time_horizon,"یک ماه اخیر":tom[0],"سه ماه اخیر":tom[1],"کل":tom[2]}) | |
capdia4=[] | |
for i in range(2): | |
capdia4.append(pd.DataFrame( | |
{ | |
"Company":international_company_name_fa, | |
"Last Month":avermax[i][0], | |
"Last Three Months":avermax[i][1], | |
"Overal":avermax[i][2]}, | |
columns=['Company', 'Last Month', 'Last Three Months','Overal'] | |
)) | |
del h,j,c,t,i,kori,tom,time_horizon,temp,company,avermax | |
############ sheet5 emoji | |
company=[] | |
temp=["میانگین تعداد اموجیها در هر پست","بیشترین تعداد اموجیها در یک پست","کم ترین تعداد اموجیها در یک پست","محبوب ترین اموجیهای استفاده شده"] | |
time_horizon=[] | |
tom=[[],[],[]] | |
hori=["last_month","last_three_months","overal"] | |
avermax=[[[],[],[]],[[],[],[]]] | |
kori=["averge_per_post","max_number","min_number","most_common"] | |
for i in national_company_name2: | |
for t in temp: | |
if temp.index(t)==0: | |
company.append(national_company_name_fa[national_company_name2.index(i)]) | |
else: | |
company.append("") | |
time_horizon.append(t) | |
for j in range(3): | |
for c in kori: | |
if c=="most_common": | |
if len(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c]) !=0 : | |
h="" | |
for g in range(len(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c])): | |
h+=data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c][g][0] | |
tom[j].append(h) | |
else: | |
tom[j].append("") | |
else: | |
tom[j].append("{:.2f}".format(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c])) | |
if c=="averge_per_post": | |
avermax[0][j].append(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c]) | |
elif c=="max_number": | |
avermax[1][j].append(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c]) | |
sheet5=pd.DataFrame(data={"شرکتها":company,"افق زمانی":time_horizon,"یک ماه اخیر":tom[0],"سه ماه اخیر":tom[1],"کل":tom[2]}) | |
capdia50=[] | |
for i in range(2): | |
capdia50.append(pd.DataFrame( | |
{ | |
"Company":national_company_name_fa, | |
"Last Month":avermax[i][0], | |
"Last Three Months":avermax[i][1], | |
"Overal":avermax[i][2]}, | |
columns=['Company', 'Last Month', 'Last Three Months','Overal'] | |
)) | |
del h,j,c,t,i,kori,tom,time_horizon,temp,company,avermax | |
company=[] | |
temp=["میانگین تعداد اموجیها در هر پست","بیشترین تعداد اموجیها در یک پست","کم ترین تعداد اموجیها در یک پست","محبوب ترین اموجیهای استفاده شده"] | |
time_horizon=[] | |
tom=[[],[],[]] | |
hori=["last_month","last_three_months","overal"] | |
avermax=[[[],[],[]],[[],[],[]]] | |
kori=["averge_per_post","max_number","min_number","most_common"] | |
for i in international_company_name2: | |
for t in temp: | |
if temp.index(t)==0: | |
company.append(international_company_name_fa[international_company_name2.index(i)]) | |
else: | |
company.append("") | |
time_horizon.append(t) | |
for j in range(3): | |
for c in kori: | |
if c=="most_common": | |
if len(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c]) !=0 : | |
h="" | |
for g in range(len(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c])): | |
h+=data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c][g][0] | |
tom[j].append(h) | |
else: | |
tom[j].append("") | |
else: | |
tom[j].append("{:.2f}".format(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c])) | |
if c=="averge_per_post": | |
avermax[0][j].append(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c]) | |
elif c=="max_number": | |
avermax[1][j].append(data["information"][i]["analysis"]["emoji"][hori[j]]["all_posts_type"][c]) | |
sheet5_1=pd.DataFrame(data={"شرکتها":company,"افق زمانی":time_horizon,"یک ماه اخیر":tom[0],"سه ماه اخیر":tom[1],"کل":tom[2]}) | |
capdia5=[] | |
for i in range(2): | |
capdia5.append(pd.DataFrame( | |
{ | |
"Company":international_company_name_fa, | |
"Last Month":avermax[i][0], | |
"Last Three Months":avermax[i][1], | |
"Overal":avermax[i][2]}, | |
columns=['Company', 'Last Month', 'Last Three Months','Overal'] | |
)) | |
del h,j,c,t,i,kori,tom,time_horizon,temp,company,avermax | |
######### sheet 6 common words | |
company=[] | |
temp=["میانگین تعداد لغات در هر پست","بیشترین تعداد لغات در یک پست","کم ترین تعداد لغات در یک پست","محبوب ترین لغات استفاده شده"] | |
time_horizon=[] | |
tom=[[],[],[]] | |
hori=["last_month","last_three_months","overal"] | |
avermax=[[[],[],[]],[[],[],[]]] | |
kori=["averge_per_post","max_number","min_number","most_common"] | |
for i in national_company_name2: | |
for t in temp: | |
if temp.index(t)==0: | |
company.append(national_company_name_fa[national_company_name2.index(i)]) | |
else: | |
company.append("") | |
time_horizon.append(t) | |
for j in range(3): | |
for c in kori: | |
if c=="most_common": | |
if len(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c]) !=0 : | |
h="" | |
for g in range(len(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c])): | |
if g!=len(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c])-1: | |
h=h+data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c][g][0]+"، " | |
else: | |
h+=data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c][g][0] | |
tom[j].append(h) | |
else: | |
tom[j].append("") | |
else: | |
tom[j].append("{:.2f}".format(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c])) | |
if c=="averge_per_post": | |
avermax[0][j].append(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c]) | |
elif c=="max_number": | |
avermax[1][j].append(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c]) | |
sheet6=pd.DataFrame(data={"شرکتها":company,"افق زمانی":time_horizon,"یک ماه اخیر":tom[0],"سه ماه اخیر":tom[1],"کل":tom[2]}) | |
capdia0=[] | |
for i in range(2): | |
capdia0.append(pd.DataFrame( | |
{ | |
"Company":national_company_name_fa, | |
"Last Month":avermax[i][0], | |
"Last Three Months":avermax[i][1], | |
"Overal":avermax[i][2]}, | |
columns=['Company', 'Last Month', 'Last Three Months','Overal'] | |
)) | |
del h,j,c,t,i,kori,tom,time_horizon,temp,company,avermax | |
company=[] | |
temp=["میانگین تعداد لغات در هر پست","بیشترین تعداد لغات در یک پست","کم ترین تعداد لغات در یک پست","محبوب ترین لغات استفاده شده"] | |
time_horizon=[] | |
tom=[[],[],[]] | |
hori=["last_month","last_three_months","overal"] | |
avermax=[[[],[],[]],[[],[],[]]] | |
kori=["averge_per_post","max_number","min_number","most_common"] | |
for i in international_company_name2: | |
for t in temp: | |
if temp.index(t)==0: | |
company.append(international_company_name_fa[international_company_name2.index(i)]) | |
else: | |
company.append("") | |
time_horizon.append(t) | |
for j in range(3): | |
for c in kori: | |
if c=="most_common": | |
if len(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c]) !=0 : | |
h="" | |
for g in range(len(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c])): | |
if g!=len(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c])-1: | |
h=h+data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c][g][0]+"، " | |
else: | |
h+=data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c][g][0] | |
tom[j].append(h) | |
else: | |
tom[j].append("") | |
else: | |
tom[j].append("{:.2f}".format(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c])) | |
if c=="averge_per_post": | |
avermax[0][j].append(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c]) | |
elif c=="max_number": | |
avermax[1][j].append(data["information"][i]["analysis"]["caption"][hori[j]]["all_posts_type"][c]) | |
sheet6_1=pd.DataFrame(data={"شرکتها":company,"افق زمانی":time_horizon,"یک ماه اخیر":tom[0],"سه ماه اخیر":tom[1],"کل":tom[2]}) | |
capdia=[] | |
for i in range(2): | |
capdia.append(pd.DataFrame( | |
{ | |
"Company":international_company_name_fa, | |
"Last Month":avermax[i][0], | |
"Last Three Months":avermax[i][1], | |
"Overal":avermax[i][2]}, | |
columns=['Company', 'Last Month', 'Last Three Months','Overal'] | |
)) | |
del h,j,c,t,i,kori,tom,time_horizon,temp,company,avermax | |
########## sheet7 populars | |
company1=data["pop"]["companies"]["national"]["list"] | |
follo=[sheet3followers[national_company_name.index(i)] for i in company1] | |
company1_fa=[national_company_name_fa[national_company_name.index(i)] for i in company1] | |
sheet7a=pd.DataFrame(data={"Companies Popularitites Based on Followers (sorted in decending order)":company1_fa,"Followers":follo}) | |
company1=data["pop"]["companies"]["international"]["list"] | |
follo=[sheet3_1followers[international_company_name.index(i)] for i in company1] | |
company1_fa=[international_company_name_fa[international_company_name.index(i)] for i in company1] | |
sheet7a_1=pd.DataFrame(data={"Companies Popularitites Based on Followers (sorted in decending order)":company1_fa,"Followers":follo}) | |
del company1,follo | |
time_horizon=["last_month","last_three_months","overal"] | |
kind=["like","comment","view","engagement"] | |
sheeta=[] | |
sheeta_diagram=[] | |
kinda12=["Like","Comment","View","Engagement"] | |
for i in kind : | |
ranka=[[] for i in range(3)] | |
timie=[] | |
timie_fa=[] | |
for j in time_horizon: | |
timie_fa.append([national_company_name_fa[national_company_name.index(l)] for l in data["pop"]["national"][j][i]["list"]]) | |
timie.append(data["pop"]["national"][j][i]["list"]) | |
ranka[time_horizon.index(j)]=[(timie[time_horizon.index(j)].index(k))+1 for k in national_company_name ] | |
sheeta.append(pd.DataFrame(data={"یک ماه اخیر":timie_fa[0],"سه ماه اخیر":timie_fa[1],"کل":timie_fa[2]})) | |
sheeta_diagram.append(pd.DataFrame( | |
{ | |
"Company":national_company_name_fa, | |
"Last Month":ranka[0], | |
"Last Three Months":ranka[1], | |
"Overal":ranka[2] | |
}, | |
columns=["Company","Last Month","Last Three Months","Overal"] | |
)) | |
sheeta_1=[] | |
timie=[] | |
sheeta_1diagram=[] | |
for i in kind : | |
timie=[] | |
timie_fa=[] | |
ranka=[[] for i in range(3)] | |
for j in time_horizon: | |
timie.append(data["pop"]["international"][j][i]["list"]) | |
timie_fa.append([international_company_name_fa[international_company_name.index(l)] for l in data["pop"]["international"][j][i]["list"]]) | |
ranka[time_horizon.index(j)]=[(timie[time_horizon.index(j)].index(k))+1 for k in international_company_name ] | |
sheeta_1.append(pd.DataFrame(data={"یک ماه اخیر":timie_fa[0],"سه ماه اخیر":timie_fa[1],"کل":timie_fa[2]})) | |
sheeta_1diagram.append(pd.DataFrame( | |
{ | |
"Company":international_company_name_fa, | |
"Last Month":ranka[0], | |
"Last Three Months":ranka[1], | |
"Overal":ranka[2] | |
}, | |
columns=["Company","Last Month","Last Three Months","Overal"] | |
)) | |
sheeta_1diagram[kind.index(i)]= sheeta_1diagram[kind.index(i)].melt("Company",var_name="Time Horizon",value_name=kinda12[kind.index(i)]) | |
del time_horizon,i,j,timie ,timie_fa | |
sheet7_0=pd.DataFrame(data={"Populars Social Medias":["Instagram","Telegram","Aparat","LinkdIn","Twitter","Facebook","Robica","iGap","Bale","Soroush","Whatsapp","Youtube","Pintrest"]}) | |
sheet7_0_1=pd.DataFrame(data={"Populars Social Medias":["Facebook","Instagram","Youtube","Twitter","Pintrest","LinkdIn","Whatsapp"]}) | |
#st.dataframe(sheet7_0) | |
sheet7_0data=[19,10,8,5,4,3,0,0,0,0,0,0,0] | |
she3=['19','10','8','5','4','3','0','0','0','0','0','0','0'] | |
num=["Instagram","Telegram","Aparat","LinkdIn","Twitter","Facebook","Robica","iGap","Bale","Soroush","Whatsapp","Youtube","Pintrest"] | |
num_fa=["اینستاگرام","تلگرام","آپارات","لینکدین","توییتر","فیسبوک","روبیکا","آی گپ","بله","سروش","واتس اپ","یوتیوب","پینترست"] | |
df23 = pd.DataFrame(data={"Social Medias":num,"The Number of Companies That Are Active In It":sheet7_0data}) | |
def left_align(s, props='text-align: left;'): | |
return props | |
df12 = pd.DataFrame(data={"شبکههای اجتماعی":num_fa,"تعداد شرکتها در هر شبکهی اجتماعی":she3}) | |
#df12=df12.style.applymap(left_align) | |
sheet7_0data=[12,12,11,7,4,2,0] | |
she3=['12','12','11','7','4','2','0'] | |
num=["Facebook","Instagram","Youtube","Twitter","Pintrest","LinkdIn","Whatsapp"] | |
num_fa=["فیسبوک","اینستاگرام","یوتیوب","توییتر","پینترست","لینکدین","واتس اپ"] | |
df23_1 = pd.DataFrame(data={"Social Medias":num,"The Number of Companies That Are Active In It":sheet7_0data}) | |
def left_align(s, props='text-align: left;'): | |
return props | |
df12_1 = pd.DataFrame(data={"Social Medias":num_fa,"The Number of Companies":she3}) | |
del num,she3,sheet7_0data | |
############# sheet8 content Anlaysis | |
maxi_national=[[0 for i in national_company_name2] for c in range(3)] | |
content_national=[["Other" for i in national_company_name2] for c in range(3)] | |
for i in national_company_name2: | |
ind=national_company_name2.index(i) | |
for f in ["last_month","last_three_months","overal"]: | |
inf=["last_month","last_three_months","overal"].index(f) | |
for j in data["information"][i]["analysis"]["caption"][f]["all_posts_type"]["anal"]: | |
if data["information"][i]["analysis"]["caption"][f]["all_posts_type"]["anal"][j]>maxi_national[inf][ind]: | |
maxi_national[inf][ind]= data["information"][i]["analysis"]["caption"][f]["all_posts_type"]["anal"][j] | |
content_national[inf][ind]=j.capitalize() | |
maxi_international=[[0 for i in international_company_name2] for c in range(3)] | |
content_international=[["Other" for i in international_company_name2] for c in range(3)] | |
for i in international_company_name2: | |
ind=international_company_name2.index(i) | |
for f in ["last_month","last_three_months","overal"]: | |
inf=["last_month","last_three_months","overal"].index(f) | |
for j in data["information"][i]["analysis"]["caption"][f]["all_posts_type"]["anal"]: | |
if data["information"][i]["analysis"]["caption"][f]["all_posts_type"]["anal"][j]>maxi_international[inf][ind]: | |
maxi_international[inf][ind]= data["information"][i]["analysis"]["caption"][f]["all_posts_type"]["anal"][j] | |
content_international[inf][ind]=j.capitalize() | |
def asem(a): | |
if isinstance(a,str): | |
if a=="Mahsol": | |
return "معرفی محصولات" | |
elif a=="Takhfif": | |
return "معرفی کالاهای تخفیف خورده" | |
elif a=="Jashn": | |
return "جشنوارهای فروش" | |
elif a=="Mosabeghe": | |
return "مسابقه" | |
elif a=="Other": | |
return "سایر محتواها" | |
else: | |
return a | |
else: | |
return a | |
national_pop_content=stat.mode([i for i in content_national[0] if i!="Other"]) | |
international_pop_content=stat.mode([i for i in content_international[0] if i!="Other"]) | |
sheet8=pd.DataFrame(data={ | |
"شرکت":national_company_name_fa, | |
"یک ماه اخیر": [asem(i) for i in content_national[0]], | |
"سه ماه اخیر":[asem(i) for i in content_national[1]], | |
"کل":[asem(i) for i in content_national[2]], | |
"ind":[i+1 for i in range(19)] | |
}) | |
sheet8diagram=pd.DataFrame(data={ | |
"Content":[asem("Mosabeghe"),asem("Jashn"),asem("Takhfif"),asem("Mahsol")], | |
"Last Month":[content_national[0].count("Mosabeghe"),content_national[0].count("Jashn"),content_national[0].count("Takhfif"),content_national[0].count("Mahsol")], | |
"Last Three Months":[content_national[1].count("Mosabeghe"),content_national[1].count("Jashn"),content_national[1].count("Takhfif"),content_national[1].count("Mahsol")], | |
"Overal":[content_national[2].count("Mosabeghe"),content_national[2].count("Jashn"),content_national[2].count("Takhfif"),content_national[2].count("Mahsol")] | |
}) | |
sheet8_1diagram=pd.DataFrame(data={ | |
"Content":[asem("Mosabeghe"),asem("Jashn"),asem("Takhfif"),asem("Mahsol")], | |
"Last Month":[content_international[0].count("Mosabeghe"),content_international[0].count("Jashn"),content_international[0].count("Takhfif"),content_international[0].count("Mahsol")], | |
"Last Three Months":[content_international[1].count("Mosabeghe"),content_international[1].count("Jashn"),content_international[1].count("Takhfif"),content_international[1].count("Mahsol")], | |
"Overal":[content_international[2].count("Mosabeghe"),content_international[2].count("Jashn"),content_international[2].count("Takhfif"),content_international[2].count("Mahsol")] | |
}) | |
sheet8_1=pd.DataFrame(data={ | |
"شرکت":international_company_name_fa, | |
"یک ماه اخیر": [asem(i) for i in content_international[0]], | |
"سه ماه اخیر":[asem(i) for i in content_international[1]], | |
"کل":[asem(i) for i in content_international[2]], | |
"ind":[i+1 for i in range(12)] | |
}) | |
del maxi_national,maxi_international,content_international,content_national | |
################ sheet 9 popular posts | |
############### ave posting per day | |
ave_post_perday_national_last_month=0 | |
for i in data["pop"]["time"]["national"]["day"]["last_month"]: | |
ave_post_perday_national_last_month+=i | |
ave_post_perday_national_last_month=ave_post_perday_national_last_month/(33*7*19) | |
ave_post_perday_national_last_three_month=0 | |
for i in data["pop"]["time"]["national"]["day"]["last_three_months"]: | |
ave_post_perday_national_last_three_month+=i | |
ave_post_perday_national_last_three_month=ave_post_perday_national_last_three_month/(99*7*19) | |
ave_post_perday_international_last_month=0 | |
for i in data["pop"]["time"]["international"]["day"]["last_month"]: | |
ave_post_perday_international_last_month+=i | |
ave_post_perday_international_last_month=ave_post_perday_international_last_month/(33*7*12) | |
ave_post_perday_international_last_three_month=0 | |
for i in data["pop"]["time"]["international"]["day"]["last_three_months"]: | |
ave_post_perday_international_last_three_month+=i | |
ave_post_perday_international_last_three_month=ave_post_perday_international_last_three_month/(99*7*12) | |
############################ Sheet Data | |
num_image_national,num_posts_national,num_video_national=[[],[],[]],[[],[],[]],[[],[],[]] | |
for i in national_company_name2: | |
k=-1 | |
for j in ["last_month","last_three_months","overal"]: | |
k+=1 | |
num_posts_national[k].append(len(data["information"][i]["analysis"]["time"]["analayzed_post_time"][j]["all_posts_type"])) | |
num_image_national[k].append(len(data["information"][i]["analysis"]["time"]["analayzed_post_time"][j]["image"])) | |
num_video_national[k].append(len(data["information"][i]["analysis"]["time"]["analayzed_post_time"][j]["video"])) | |
sheet_data=pd.DataFrame(data={ | |
"Company":national_company_name_fa, | |
"Last Month Total Posts":num_posts_national[0], | |
"Last Month Image":num_image_national[0], | |
"Last Month Video":num_video_national[0], | |
"Last Three Months Total Posts":num_posts_national[1], | |
"Last Three Months Image":num_image_national[1], | |
"Last Three Months Video":num_video_national[1], | |
"Overal Total Posts":num_posts_national[2], | |
"Overal Image":num_image_national[2], | |
"Overal Video":num_video_national[2], | |
}) | |
num_image_national,num_posts_national,num_video_national=[[],[],[]],[[],[],[]],[[],[],[]] | |
for i in international_company_name2: | |
k=-1 | |
for j in ["last_month","last_three_months","overal"]: | |
k+=1 | |
num_posts_national[k].append(len(data["information"][i]["analysis"]["time"]["analayzed_post_time"][j]["all_posts_type"])) | |
num_image_national[k].append(len(data["information"][i]["analysis"]["time"]["analayzed_post_time"][j]["image"])) | |
num_video_national[k].append(len(data["information"][i]["analysis"]["time"]["analayzed_post_time"][j]["video"])) | |
sheet_1data=pd.DataFrame(data={ | |
"Company":international_company_name_fa, | |
"Last Month Total Posts":num_posts_national[0], | |
"Last Month Image":num_image_national[0], | |
"Last Month Video":num_video_national[0], | |
"Last Three Months Total Posts":num_posts_national[1], | |
"Last Three Months Image":num_image_national[1], | |
"Last Three Months Video":num_video_national[1], | |
"Overal Total Posts":num_posts_national[2], | |
"Overal Image":num_image_national[2], | |
"Overal Video":num_video_national[2], | |
}) | |
del num_image_national,num_posts_national,num_video_national | |
########### ranks | |
rank=[i for i in sheet3followers] | |
rank.sort() | |
eer=len(sheet3followers) | |
ranki=[(eer-rank.index(i)) for i in sheet3followers] | |
eer=len(sheet3_1followers) | |
rank=[i for i in sheet3_1followers] | |
rank.sort() | |
ranki_1=[(eer-rank.index(i)) for i in sheet3_1followers] | |
del rank | |
#########3 number of posts analysed | |
number_posts_analysed=0 | |
number_posts_analysed_national=0 | |
number_posts_analysed_international=0 | |
max_national=0 | |
max_national_account="" | |
min_national=90000000 | |
min_national_account="" | |
max_international=0 | |
max_international_account="" | |
min_international=90000000 | |
min_international_account="" | |
for i in data["information"]: | |
if i in national_company_name2: | |
number_posts_analysed_national+=data["information"][i]["analysis"]["number_of_posts_analysed"] | |
if data["information"][i]["analysis"]["number_of_posts_analysed"]>=max_national: | |
max_national=data["information"][i]["analysis"]["number_of_posts_analysed"] | |
max_national_account=i | |
if data["information"][i]["analysis"]["number_of_posts_analysed"]<=min_national: | |
min_national=data["information"][i]["analysis"]["number_of_posts_analysed"] | |
min_national_account=i | |
else: | |
number_posts_analysed_international+=data["information"][i]["analysis"]["number_of_posts_analysed"] | |
if data["information"][i]["analysis"]["number_of_posts_analysed"]>=max_international: | |
max_international=data["information"][i]["analysis"]["number_of_posts_analysed"] | |
max_international_account=i | |
if data["information"][i]["analysis"]["number_of_posts_analysed"]<=min_international: | |
min_international=data["information"][i]["analysis"]["number_of_posts_analysed"] | |
min_international_account=i | |
number_posts_analysed+=data["information"][i]["analysis"]["number_of_posts_analysed"] | |
dash_1=pd.DataFrame(data={"خلاصه":["تعداد شرکتهای داخلی مورد بررسی","تعداد شرکتهای بین المللی مورد بررسی","تعداد پست های مورد بررسی","تعداد پست های شرکتهای داخلی بررسی شده", | |
"تعداد پستهای شرکت های بین المللی بررسی شده","میانگین تعداد پستهای بررسی شده برای هر شرکت داخلی","میانگین تعداد پست های بررسی شده برای هر شرکت بین المللی", | |
"بیشترین تعداد پست های بررسی شده برای یک شرکت داخلی","حساب کاربری بیشترین تعداد پست های بررسی شده برای یک شرکت داخلی ", | |
"کم ترین میزان پست های بررسی شده برای یک شرکت داخلی","حساب کاربری کم ترین میزان پست های بررسی شده برای یک شرکت داخلی", | |
"بیشترین تعداد پستهای بررسی شده برای یک شرکت بین المللی","حساب کاربری بیشترین تعداد پستهای بررسی شده برای یک شرکت بین المللی", | |
"کم ترین تعداد پست های بررسی شده برای یک شرکت بین المللی","حساب کاربری کم ترین میزان پست های بررسی شده برای یک شرکت بین المللی" | |
], | |
"تعداد":[19,12,number_posts_analysed,number_posts_analysed_national,number_posts_analysed_international,"{:.1f}".format(number_posts_analysed_national/19), | |
"{:.1f}".format(number_posts_analysed_international/12), | |
max_national,max_national_account,min_national,min_national_account,max_international,max_international_account,min_international,min_international_account | |
] | |
}) | |
del max_national,max_national_account,min_international,min_international_account,min_national,min_national_account,max_international,max_international_account | |
if jkl: | |
########## Sidebar | |
option1=["داشبورد","شرکتهای داخلی","شرکتهای بین المللی","آپارات","خلاصه"] | |
option2_fa=["شبکههای اجتماعی","جایگاه در شبکههای اجتماعی","ماهیت پست ها","تحلیل پست ها","تحلیل هشتگ ها","تحلیل اموجی ها","تحلیل متن ها","محبوب ها","تحلیل محتوای پستها","پیوند پستهای محبوب","تحلیل میزان تعامل شرکتها","زمان بارگذاری پستها"] | |
option3_fa=["شبکههای اجتماعی","تعداد دنبال کنندگان","پسندیده شدن","نظرات","بازدید","مشارکت"] | |
option2=["Social Meidas","Popularities","Form of Posts","Posts Analysis","Hashtags Analysis","Emoji Analysis","Caption Analysis","Populars","Content Analysis","Popular Posts Link","Interaction Analysis","Posting Time"] | |
option3=["Social Medias","Followers","Like","Comment","View","Engagement"] | |
option_aparat=["افق کوروش","دیجی کالا","رفاه"] | |
select1=st.sidebar.selectbox("انتخاب نوع شرکتها برای تحلیل",option1,key=1) | |
st.title("تحلیل بر خط شبکههای اجتماعی\n مهدی احمدی فرد") | |
##### Aparat | |
if select1=="آپارات": | |
st.markdown(""" | |
در اینجا شما میتوانید ویدیوهای محبوب در آپارات را مشاهده نمایید. | |
""") | |
select_apa=st.selectbox("شرکت را انتخاب کنید",option_aparat,key=29) | |
optionah=["Playlists","Populars"] | |
#select_optionah=st.sidebar.selectbox("Choose the info you want to see",optionah,key=229) | |
ip_aparat=["okclub","digikala","myrefah"] | |
insd=ip_aparat[option_aparat.index(select_apa)] | |
st.title("دسته بندی ویدیوها") | |
pllay=[i["title"].replace("‌"," ") for i in data["aparat"][insd]["playlist"]] | |
pllay=pd.DataFrame(data={"Playlist":pllay}) | |
AgGrid(pllay,theme="streamlit") | |
#if select_optionah==optionah[1]: | |
df=pd.DataFrame(data={ | |
"شرکت":select_apa, | |
"رتبه نخست": [f'1={data["aparat"][insd]["posts"][data["aparat"][insd]["sort_view"][0]]["frame"]}'], | |
"رتبه دوم":[f'2={data["aparat"][insd]["posts"][data["aparat"][insd]["sort_view"][1]]["frame"]}'], | |
"رتبه سوم":[f'3={data["aparat"][insd]["posts"][data["aparat"][insd]["sort_view"][2]]["frame"]}'], | |
"رتبه چهارم":[f'3={data["aparat"][insd]["posts"][data["aparat"][insd]["sort_view"][3]]["frame"]}'] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم","رتبه چهارم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.header("برای مشاهده پستها بر روی اعداد کلیک کنید") | |
st.write(df,unsafe_allow_html=True) | |
st.title("مشاهده مستقیم ویدیوها") | |
st.header("پر بازدید ترین ویدیو") | |
st.write(f'''<iframe allowtransparency="true" src={data["aparat"][insd]["posts"][data["aparat"][insd]["sort_view"][0]]["frame"]} | |
width="100%" height="400"><iframe>''', | |
unsafe_allow_html=True) | |
st.header("دومین ویدیوی پر بازدید") | |
st.write(f'''<iframe allowtransparency="true" src={data["aparat"][insd]["posts"][data["aparat"][insd]["sort_view"][1]]["frame"]} | |
width="100%" height="400"><iframe>''', | |
unsafe_allow_html=True) | |
st.header("سومین ویدیوی پر بازدید") | |
st.write(f'''<iframe allowtransparency="true" src={data["aparat"][insd]["posts"][data["aparat"][insd]["sort_view"][2]]["frame"]} | |
width="100%" height="400"><iframe>''', | |
unsafe_allow_html=True) | |
st.header("چهارمین ویدیوی پر بازدید") | |
st.write(f'''<iframe allowtransparency="true" src={data["aparat"][insd]["posts"][data["aparat"][insd]["sort_view"][3]]["frame"]} | |
width="100%" height="400"><iframe>''', | |
unsafe_allow_html=True) | |
#elif select_optionah==optionah[0]: | |
################# summary | |
elif select1=="خلاصه": | |
st.header("در اینجا خلاصهای از دادههای شرکتهای محبوب قرار داده شده است") | |
v=st.selectbox("انتخاب کنید چند شرکت برتر را میخواهید مشاهده کنید",[i for i in range(3,20)],key=9232) | |
asd=[i for i in range(3,20)].index(v) | |
def guhi(x=1+asd): | |
com=list(sheet2bar["Companies"]) | |
rom=list(sheet2bar["Followers"]) | |
fd=copy.copy(rom) | |
fd.sort(reverse=True) | |
kol=sum(fd) | |
df=pd.DataFrame(data={ | |
"رتبه": [i+1 for i in range(v)] +["",""] , | |
"شرکت ها به ترتیب محبوبیت": [com[rom.index(fd[i])] for i in range(v)]+["جمع","کل شرکتها"] , | |
"تعداد دنبال کننده": [f"{fd[i]:,}" for i in range(v)] +[sum([fd[i] for i in range(v)]),kol], | |
"درصد دنبال کننده به کل":["{:.2f}".format((fd[i]/kol)*100)+"%" for i in range(v)] +[f"{(sum([fd[i]/kol for i in range(v)])*100):.2f}"+"%","100%"], | |
}) | |
return df | |
AgGrid(guhi(x=1+asd),theme="streamlit") | |
##### start options | |
elif select1=="داشبورد": | |
st.markdown(""" | |
این برنامه به منظور تسهیل تحلیل شبکههای اجتماعی، شناخت بهتر رقبای داخلی و خارجی و تحلیل روندها محبوب در شبکههای اجتماعی نوشته شده است. | |
این برنامه حساب های ۱۹ شرکت داخلی و ۱۲ شرکت بین المللی را به صورت برخط تحلیل می کند. | |
می تواند هرگونه انتقاد و پیشنهاد خود را با ایمیل بنده به اشتراک بگذارید: [email protected] | |
با تشکر مهدی احمدی فرد \n | |
""") | |
st.write("لذت ببرید! :wink:") | |
st.subheader("خلاصه") | |
#st.dataframe(dash_1) | |
AgGrid(dash_1,theme="streamlit") | |
st.subheader("نام شرکتهای مورد بررسی") | |
fig1,fig2=st.columns(2) | |
with fig1: | |
fd=pd.DataFrame(data={ | |
"شرکت های داخلی":national_company_name_fa, | |
"شماره":[i+1 for i in range(len(national_company_name))] | |
}) | |
hide=""" | |
<style> | |
tbody th {display:none} | |
.blank {display:none} | |
</style> | |
""" | |
#st.markdown(hide,unsafe_allow_html=True) | |
#st.dataframe(fd.set_index("index")) | |
AgGrid(fd,theme="streamlit") | |
with fig2: | |
fd=pd.DataFrame(data={ | |
"شرکتهای بین المللی":international_company_name_fa, | |
"شماره":[i+1 for i in range(len(international_company_name))] | |
}) | |
hide=""" | |
<style> | |
.row_heading.level0 {display:none} | |
.blank {display:none} | |
</style> | |
""" | |
#st.markdown(hide,unsafe_allow_html=True) | |
#st.dataframe(fd.set_index("index")) | |
###########################################################3 | |
AgGrid(fd,theme="streamlit") | |
st.subheader("شمای کلی") | |
Day=["شنبه","یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه"] | |
Hour=[i for i in range(24)] | |
fig1,fig2=st.columns(2) | |
with fig1: | |
st.subheader("شرکت های داخلی") | |
fd=pd.DataFrame(data={ | |
"محبوب ها":["شبکهی اجتماعی محبوب","شرکت محبوب","محتوای محبوب","روز محبوب","ساعت محبوب","میانگین تعداد پست بارگذاری شده در روز در یک ماه اخیر","میانگین تعداد پست بارگذاری شده در روز در سه ماه اخیر",], | |
" ":["اینستاگرام",national_company_name_fa[national_company_name.index(data["pop"]["companies"]["national"]["list"][0])],kindii_fa[kindii.index(national_pop_content.capitalize())],Day[data["pop"]["time"]["national"]["day"]["last_month"].index(max(data["pop"]["time"]["national"]["day"]["last_month"]))], | |
str(Hour[data["pop"]["time"]["national"]["hour"]["last_month"].index(max(data["pop"]["time"]["national"]["hour"]["last_month"]))]),"{:.1f}".format(ave_post_perday_national_last_month), | |
"{:.1f}".format(ave_post_perday_national_last_three_month)] | |
}) | |
#st.dataframe(fd) | |
AgGrid(fd,theme="streamlit") | |
with fig2: | |
st.subheader("شرکت های بین المللی") | |
fd=pd.DataFrame(data={ | |
"محبوب ها":["شبکهی اجتماعی محبوب","شرکت محبوب","محتوای محبوب","روز محبوب","ساعت محبوب","میانگین تعداد پست بارگذاری شده در روز در یک ماه اخیر","میانگین تعداد پست بارگذاری شده در روز در سه ماه اخیر",], | |
" ":["اینستاگرام",international_company_name_fa[international_company_name.index(data["pop"]["companies"]["international"]["list"][0])],kindii_fa[kindii.index(international_pop_content.capitalize())],Day[data["pop"]["time"]["international"]["day"]["last_month"].index(max(data["pop"]["time"]["international"]["day"]["last_month"]))], | |
str(Hour[data["pop"]["time"]["international"]["hour"]["last_month"].index(max(data["pop"]["time"]["international"]["hour"]["last_month"]))]), | |
"{:.1f}".format(ave_post_perday_international_last_month),"{:.1f}".format(ave_post_perday_national_last_three_month)] | |
}) | |
#st.dataframe(fd) | |
AgGrid(fd,theme="streamlit") | |
fig1,fig2=st.columns(2) | |
with fig1: | |
st.subheader("شبکههای اجتماعی محبوب برای شرکتهای داخلی") | |
option = { | |
"legend": {"top": "bottom"}, | |
"toolbox": { | |
"show": True, | |
"feature": { | |
"mark": {"show": True}, | |
"dataView": {"show": True, "readOnly": False}, | |
"restore": {"show": True}, | |
"saveAsImage": {"show": True}, | |
}, | |
}, | |
"series": [ | |
{ | |
"name": "Popular Social Medias among National Companies", | |
"type": "pie", | |
"radius": [10, 50], | |
"center": ["50%", "50%"], | |
"roseType": "area", | |
"itemStyle": {"borderRadius": 5}, | |
"data": [ | |
{"value": 19, "name": "Instagram"}, | |
{"value": 10, "name": "Telegram"}, | |
{"value": 8, "name": "Aparat"}, | |
{"value": 5, "name": "LinkedIn"}, | |
{"value": 4, "name": "Twitter"}, | |
{"value": 3, "name": "Facebook"}, | |
], | |
} | |
], | |
} | |
st_echarts( | |
options=option, height="300px", | |
) | |
with fig2: | |
st.subheader("شبکههای اجتماعی محبوب برای شرکت های بین المللی") | |
option = { | |
"legend": {"top": "bottom"}, | |
"toolbox": { | |
"show": True, | |
"feature": { | |
"mark": {"show": True}, | |
"dataView": {"show": True, "readOnly": False}, | |
"restore": {"show": True}, | |
"saveAsImage": {"show": True}, | |
}, | |
}, | |
"series": [ | |
{ | |
"name": "Popular Social Medias among National Companies", | |
"type": "pie", | |
"radius": [10, 50], | |
"center": ["50%", "50%"], | |
"roseType": "area", | |
"itemStyle": {"borderRadius": 5}, | |
"data": [ | |
{"value": 12, "name": "Instagram"}, | |
{"value": 12, "name": "Facebook"}, | |
{"value": 11, "name": "Youtube"}, | |
{"value": 7, "name": "Twitter"}, | |
{"value": 4, "name": "Pintrest"}, | |
{"value": 2, "name": "LinkedIn"}, | |
], | |
} | |
], | |
} | |
st_echarts( | |
options=option, height="300px", | |
) | |
fig1,fig2=st.columns(2) | |
with fig1: | |
st.subheader("شرکت های داخلی") | |
df=pd.DataFrame(data={ | |
"خلاصه ی آماری" : ["میانگین تعداد دنبال کنندگان هر شرکت","میانگین میزان پسندیده شدن برای هر شرکت","میانگین میزان پسندیده شدن به تعداد دنبال کننده", | |
"میانگین تعداد نظرات","میانگین تعداد نظرات به تعداد دنبال کنندگان", | |
"میانگین تعداد بازدید ها","میانگین تعداد بازدید ها به تعداد دنبال کنندگان", | |
"میانگین مشارکت برای هر پست","میانگین مشارکت برای هر پست به تعداد دنبال کنندگان", | |
], | |
" ":["{:.0f}".format(mean(sheet2bar["Followers"])), "{:.0f}".format(mean(sheet3like[0])) ,"{:.2f}".format(mean([sheet3like[0][i]/sheet2bar["Followers"][i] for i in range(19)] )*100)+" %" , | |
"{:.0f}".format(mean(sheet3comment[0])) ,"{:.2f}".format(mean([sheet3comment[0][i]/sheet2bar["Followers"][i] for i in range(19)] )*100)+" %" , | |
"{:.0f}".format(mean(sheet3view[0])) ,"{:.2f}".format(mean([sheet3view[0][i]/sheet2bar["Followers"][i] for i in range(19)] )*100)+" %" , | |
"{:.0f}".format(mean(sheet3participation[0])) ,"{:.2f}".format(mean([sheet3participation[0][i]/sheet2bar["Followers"][i] for i in range(19)] )*100)+" %" , | |
] | |
}) | |
AgGrid(df,theme="streamlit") | |
with fig2: | |
st.subheader("شرکت های بین المللی") | |
df=pd.DataFrame(data={ | |
"خلاصه ی آماری" : ["میانگین تعداد دنبال کنندگان هر شرکت","میانگین میزان پسندیده شدن برای هر شرکت","میانگین میزان پسندیده شدن به تعداد دنبال کننده", | |
"میانگین تعداد نظرات","میانگین تعداد نظرات به تعداد دنبال کنندگان", | |
"میانگین تعداد بازدید ها","میانگین تعداد بازدید ها به تعداد دنبال کنندگان", | |
"میانگین مشارکت برای هر پست","میانگین مشارکت برای هر پست به تعداد دنبال کنندگان", | |
], | |
" ":["{:.0f}".format(mean(sheet2bar_1["Followers"])), "{:.0f}".format(mean(sheet3like_1[0])) ,"{:.2f}".format(mean([sheet3like_1[0][i]/sheet2bar_1["Followers"][i] for i in range(12)] )*100)+" %" , | |
"{:.0f}".format(mean(sheet3comment_1[0])) ,"{:.2f}".format(mean([sheet3comment_1[0][i]/sheet2bar_1["Followers"][i] for i in range(12)] )*100)+" %" , | |
"{:.0f}".format(mean(sheet3view_1[0])) ,"{:.2f}".format(mean([sheet3view_1[0][i]/sheet2bar_1["Followers"][i] for i in range(12)] )*100)+" %" , | |
"{:.0f}".format(mean(sheet3participation_1[0])) ,"{:.2f}".format(mean([sheet3participation_1[0][i]/sheet2bar_1["Followers"][i] for i in range(12)] )*100)+" %" , | |
] | |
}) | |
AgGrid(df,theme="streamlit") | |
hist_data = pd.DataFrame(tuple([i/93 for i in sheet_data["Last Three Months Total Posts"]]+[i/93 for i in sheet_1data["Last Three Months Total Posts"]]) , columns=["x"]) | |
st.subheader("نمودار هیستوگرام میانگین بارگذاری روزانه پست ها در سه ماه اخیر برای تمامی شرکتها") | |
def altair_histogram(a=3): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Average Posts per Day"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"Histogram") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=3)) | |
r = event_dict.get("x") | |
if r: | |
ve=[(hist_data.x >= r[0]) & (hist_data.x < r[1])][0] | |
zt=[company_name[i] for i in range(len(ve)) if ve[i] ] | |
filtered=pd.DataFrame(data={ | |
"Company":zt, | |
"Average Posts per Day":hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])]["x"] | |
}) | |
st.dataframe(filtered) | |
################################## national starts here -------------------------------------------------------------------- | |
elif select1==option1[1]: | |
select2=st.sidebar.selectbox("نوع تحلیل مورد نظر را انتخاب کنید",option2_fa,key=2) | |
if select2==option2_fa[0]: | |
st.write(sheet1, unsafe_allow_html=True) | |
################### | |
#st.dataframe(sheet1) | |
st.subheader("تعداد حساب های کاربری در شبکههای اجتماعی برای شرکتهای داخلی") | |
agree=st.checkbox("نمایش نمودار دایره ای") | |
if agree: | |
st.header("نمودار دایره ای") | |
Social_Medias=['Instagram','FaceBook','Twitter','LinkedIn','Telegram','Aparat'] | |
Popularities=[19,3,4,5,10,8] | |
fig = go.Figure( | |
go.Pie( | |
hole = 0.3, | |
labels = Social_Medias, | |
values = Popularities, | |
hoverinfo = "label+percent", | |
textinfo = "value" | |
)) | |
st.plotly_chart(fig) | |
else: | |
st.header("نمودار میله ای") | |
c = alt.Chart(dfsheet0).mark_bar().encode(x=alt.X('Companies', sort=None),y='The Number of Accounts',color=(alt.value('red')),tooltip=["Companies","The Number of Accounts"]).interactive() | |
st.altair_chart(c, use_container_width=True) | |
elif select2==option2_fa[option2.index("Popularities")]: | |
#st.dataframe(sheet2) | |
AgGrid(sheet2,theme="streamlit") | |
agree=st.checkbox("تغییر نمودار به تعداد پست ها") | |
if agree: | |
st.subheader("نمودار میله ای تعداد پست ها") | |
c = alt.Chart(sheet2barpost).mark_bar().encode(x=alt.X('Companies', sort=None),y='Number of posts',color=(alt.value('red')),tooltip=["Companies","Number of posts"]).interactive() | |
st.altair_chart(c, use_container_width=True) | |
st.subheader("Histogram of Number of Posts") | |
hist_data = pd.DataFrame(tuple(sheet2barpost["Number of posts"]) , columns=["x"]) | |
def altair_histogram(a=2): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Number of Posts"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"Histogram") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=2)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
else: | |
st.subheader("نمودار میله ای تعداد دنبال کنندگان") | |
c = alt.Chart(sheet2bar).mark_bar().encode(x=alt.X('Companies', sort=None),y='Followers',color=(alt.value('red')),tooltip=["Companies","Followers"]).interactive() | |
st.altair_chart(c, use_container_width=True) | |
st.subheader("نمودار هیستوگرام تعداد دنبال کنندگان") | |
hist_data = pd.DataFrame(tuple(sheet2bar["Followers"]) , columns=["x"]) | |
def altair_histogram(a=1): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Number of Followers"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"Histogram") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=1)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Posts Analysis")] : | |
#st.dataframe(sheet3) | |
jk=[sheet3like,sheet3comment,sheet3view,sheet3participation,sheet3image,sheet3postperday] | |
begri=st.checkbox("تغییر نمایش به عمودی") | |
if begri: | |
df=pd.DataFrame(data={ | |
"شرکت":national_company_name_fa , | |
"میانگین میزان پسندیده شدن در یک ماه اخیر":jk[0][0] , | |
"میانگین میزان پسندیده شدن در سه ماه اخیر":jk[0][1] , | |
"میانگین میزان پسندیده شدن در کل":jk[0][2] , | |
"میانگین تعداد نظرات در یک ماه اخیر":jk[1][0] , | |
"میانگین تعداد نظرات در سه ماه اخیر":jk[1][1] , | |
"میانگین تعداد نظرات در کل":jk[1][2] , | |
"میانگین تعداد بازدید ها در یک ماه اخیر":jk[2][0] , | |
"میانگین تعداد بازدیدها در سه ماه اخیر":jk[2][1] , | |
"میانگین تعداد بازدید ها در کل":jk[2][2] , | |
"میانگین مشارکت در یک ماه اخیر":jk[3][0] , | |
"میانگین مشارکت در سه ماه اخیر":jk[3][1] , | |
"میانگین مشارکت در کل":jk[3][2] , | |
"٪ تعداد تصاویر در یک ماه اخیر":jk[4][0] , | |
"٪ تعداد تصاویر در سه ماه اخیر":jk[4][1] , | |
"٪ تعداد تصاویر در کل":jk[4][2] , | |
"میانگین روزانه تعداد پست های بار کذاری شده در یک ماه اخیر":jk[5][0] , | |
"میانگین روزانه تعداد پست های بارگذاری شده در سه ماه اخیر":jk[5][1] , | |
"میانگین روزانه تعداد پست های بارگذاری شده در کل":jk[5][2] , | |
}) | |
AgGrid(df,theme="streamlit") | |
else: | |
AgGrid(sheet3,theme="streamlit") | |
agree=st.selectbox("انتخاب نوع نمودار",["هیستوگرام","حبابی","میلهای"]) | |
jv_fa=["میانگین تعداد پسندیده شدن","میانگین تعداد نظرات","میانگین تعداد بازدی","میانگین مشارکت","٪ تصاویر","میانگین تعداد پستهای روزانه"] | |
select5=st.selectbox("متغییر مورد نظر را انتخاب کنید",jv_fa) | |
jv=["Average Like","Average Comment","Average View","Average Participation","% of image","Average Post per Day"] | |
ind=jv_fa.index(select5) | |
opt=["Last Month","Last Three Month","Overal"] | |
opt_fa=["یک ماه اخیر","سه ماه اخیر","کل"] | |
select6=st.selectbox("انتخاب بازه زمانی",opt_fa) | |
indi=opt_fa.index(select6) | |
if agree=="حبابی": | |
st.subheader(f"نمودار حبابی {jv_fa[ind]} در {opt_fa[indi]} ") | |
ddp=pd.DataFrame(data={"Company":national_company_name_fa,jv[ind]:jk[ind][indi],"Followers":sheet3followers,"Rank of Popularity":ranki}) | |
c=alt.Chart(ddp).mark_point(color="red",filled=True,opacity=0.4).encode( | |
x="Company", | |
y=jv[ind], | |
size="Followers", | |
tooltip=["Company",jv[ind],"Followers","Rank of Popularity"], | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif agree=="میلهای": | |
st.subheader(f"نمودار میلهای {jv_fa[ind]} در {opt_fa[indi]} ") | |
ddp=pd.DataFrame(data={"Company":national_company_name_fa,jv[ind]:jk[ind][indi],"Followers":sheet3followers,"Rank of Popularity":ranki}) | |
c=alt.Chart(ddp).mark_bar().encode(x=alt.X("Company",sort=None),y=jv[ind],color=(alt.value("red")),tooltip=["Company",jv[ind],"Followers","Rank of Popularity"]).interactive() | |
st.altair_chart(c,use_container_width=True) | |
else: | |
st.subheader(f"هیستوگرام {jv_fa[ind]} در {opt_fa[indi]} ") | |
hist_data = pd.DataFrame(tuple(jk[ind][indi]) , columns=["x"]) | |
def altair_histogram(a=4): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title=f"{jv[ind]} in {opt[indi]}"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"Histogram") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=4)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Hashtags Analysis")] : | |
#st.dataframe(sheet4) | |
al=st.checkbox("نمایش متغییر ها به حالت عمودی") | |
if al: | |
df=pd.DataFrame(data={ | |
"شرکتها":national_company_name_fa, | |
"میانگین تعداد هشتگهای مورد استفاده در هر پست در یک ماه اخیر" :capdia40[0]["Last Month"] , | |
"میانگین تعداد هشتگهای مورد استفاده در هر پست در سه ماه اخیر" : capdia40[0]["Last Three Months"], | |
"میانگین تعداد هشتگهای مورد استفاده در هر پست در کل" :capdia40[0]["Overal"] , | |
"بیشترین تعداد هشتگهای مورد استفاده در یک پست در یک ماه اخیر":capdia40[1]["Last Month"], | |
"بیشترین تعداد هشتگهای مورد استفاده در یک پست در سه ماه اخیر":capdia40[1]["Last Three Months"], | |
"بیشترین تعداد هشتگهای مورد استفاده در یک پست در کل":capdia40[1]["Overal"], | |
}) | |
AgGrid(df,theme="streamlit") | |
else: | |
AgGrid(sheet4,theme="streamlit") | |
agree=st.checkbox("نمایش نمودارهای بیشترین تعداد هشتگ مورد استفاده در یک پست") | |
if agree: | |
st.subheader("بیشترین تعداد هشتگ مورد استفاده در یک پست") | |
chart = alt.Chart(capdia40[1].melt('Company', var_name='Time Horizon', value_name='Number')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Number:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Number"], | |
).properties(title=" بیشترین تعداد هشتگ مورد استفاده در یک پست") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=11) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia40[1][qwe1]) , columns=["x"]) | |
def altair_histogram(a=75+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Maxiumum number of hashtags"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"هیستوگرام بیشترین تعداد هشتگهای استفاده شده در یک پست در {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=75+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
else : | |
st.subheader(" میانگین تعداد هشتگهای استفاده شده در هر پست") | |
chart = alt.Chart(capdia40[0].melt('Company', var_name='Time Horizon', value_name='Number')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Number:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Number"], | |
).properties(title="میانگین تعداد هشتگها") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=12) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia40[0][qwe1]) , columns=["x"]) | |
def altair_histogram(a=56+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Average number of hashtags"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"هیستوگرام میانگین هشتگهای استفاده شده در هر پست در {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=56+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Emoji Analysis")]: | |
#st.dataframe(sheet5) | |
al=st.checkbox("نمایش متغییر ها به حالت عمودی") | |
if al: | |
df=pd.DataFrame(data={ | |
"شرکتها":national_company_name_fa, | |
"میانگین تعداد اموجیهای مورد استفاده در هر پست در یک ماه اخیر" :capdia50[0]["Last Month"] , | |
"میانگین تعداد اموجیهای مورد استفاده در هر پست در سه ماه اخیر" : capdia50[0]["Last Three Months"], | |
"میانگین تعداد اموجیهای مورد استفاده در هر پست در کل" :capdia50[0]["Overal"] , | |
"بیشترین تعداد اموجیهای مورد استفاده در یک پست در یک ماه اخیر":capdia50[1]["Last Month"], | |
"بیشترین تعداد اموجیهای مورد استفاده در یک پست در سه ماه اخیر":capdia50[1]["Last Three Months"], | |
"بیشترین تعداد اموجیهای مورد استفاده در یک پست در کل":capdia50[1]["Overal"], | |
}) | |
AgGrid(df,theme="streamlit") | |
else: | |
AgGrid(sheet5,theme="streamlit") | |
agree=st.checkbox("نمایش نمودارهای بیشترین تعداد اموجیهای مورد استفاده در یک پست") | |
if agree: | |
st.subheader("بیشتری تعداد اموجیهای مورد استفاده در یک پست") | |
chart = alt.Chart(capdia50[1].melt('Company', var_name='Time Horizon', value_name='Number')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Number:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Number"], | |
).properties(title="بیشترین تعداد اموجی استفاده شده") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=13) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia50[1][qwe1]) , columns=["x"]) | |
def altair_histogram(a=117+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Maxiumum number of emoijes"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"هیستوگرام بیشتری تعداد اموجی مورد استفاده در یک پست {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=117+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
else : | |
st.subheader("میانگین تعداد اموجیهای مورد استفاده در هر پست") | |
chart = alt.Chart(capdia50[0].melt('Company', var_name='Time Horizon', value_name='Number')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Number:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Number"], | |
).properties(title="میانگین تعداد اموجی ها") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=14) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia40[0][qwe1]) , columns=["x"]) | |
def altair_histogram(a=820+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="میانگین تعداد اموجیها"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام میانگین تعداد اموجیهای در هر پست {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=820+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Caption Analysis")]: | |
#st.dataframe(sheet6) | |
al=st.checkbox("نمایش متغییر ها به حالت عمودی") | |
if al: | |
df=pd.DataFrame(data={ | |
"شرکتها":national_company_name_fa, | |
"میانگین تعداد لغات مورد استفاده در هر پست در یک ماه اخیر" :capdia0[0]["Last Month"] , | |
"میانگین تعداد لغات مورد استفاده در هر پست در سه ماه اخیر" : capdia0[0]["Last Three Months"], | |
"میانگین تعداد لغات مورد استفاده در هر پست در کل" :capdia0[0]["Overal"] , | |
"بیشترین تعداد لغات مورد استفاده در یک پست در یک ماه اخیر":capdia0[1]["Last Month"], | |
"بیشترین تعداد لغات مورد استفاده در یک پست در سه ماه اخیر":capdia0[1]["Last Three Months"], | |
"بیشترین تعداد لغات مورد استفاده در یک پست در کل":capdia0[1]["Overal"], | |
}) | |
AgGrid(df,theme="streamlit") | |
else: | |
AgGrid(sheet6,theme="streamlit") | |
agree=st.checkbox("نمایش نمودارهای بیشترین تعداد لغات مورد استفاده در یک پست") | |
if agree: | |
st.subheader("(لغات ایستایی نظیر از، به، با و ... حساب نشده اند) بیشترین تعداد لغات مورد استفاده در یک پست") | |
chart = alt.Chart(capdia0[1].melt('Company', var_name='Time Horizon', value_name='Lenght')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Lenght:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Lenght"], | |
).properties(title="بیشترین تعداد لغات مورد استفاده") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=17) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia0[1][qwe1]) , columns=["x"]) | |
def altair_histogram(a=139+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="بیشترین طول نظرات"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام بیشترین تعداد لغات مورد استفاده در یک پست در {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=139+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
else : | |
st.subheader("(لغات ایستایی نظیر از، به، با و ... حساب نشده اند) میانگین تعداد لغات مورد استفاده در هر پست") | |
chart = alt.Chart(capdia0[0].melt('Company', var_name='Time Horizon', value_name='Lenght')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Lenght:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Lenght"], | |
).properties(title="میانگین تعداد لغات مورد استفاده") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=18) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia0[0][qwe1]) , columns=["x"]) | |
def altair_histogram(a=149+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="میانگین طول نظرات"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام میانگین تعداد لغات مورد استفاده در هر پست در {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=149+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Populars")]: | |
select3=st.sidebar.selectbox("شاخص محبوبیت برای رتبه بندی را انتخاب کنید",option3_fa,key=3) | |
if select3==option3_fa[0]: | |
st.write("محبوبیت شبکههای اجتماعی در میان شرکتهای داخلی") | |
#st.write(df12) | |
AgGrid(df12,theme="streamlit") | |
c = alt.Chart(df23).mark_bar().encode(x=alt.X('Social Medias', sort=None),y='The Number of Companies That Are Active In It',color=(alt.value('red')),tooltip=["Social Medias","The Number of Companies That Are Active In It"]).interactive() | |
st.altair_chart(c, use_container_width=True) | |
elif select3==option3_fa[1]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[1]}") | |
#st.dataframe(sheet7a) | |
AgGrid(sheet7a,theme="streamlit") | |
c=alt.Chart(sheet7a).mark_bar().encode(x=alt.X("Companies Popularitites Based on Followers (sorted in decending order)",sort=None,title="Companies"),y=alt.Y("Followers",sort='-x'),tooltip=["Followers"],color=(alt.value("red"))) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select3==option3_fa[2]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[2]}") | |
sheeta[0]["رتبه"]=[i+1 for i in range(len(national_company_name2))] | |
AgGrid(sheeta[0][["رتبه", "یک ماه اخیر","سه ماه اخیر" ,"کل"]],theme="streamlit") | |
st.subheader(f"نمودار خطی محبوبیت بر اساس {option3_fa[2]}") | |
c=alt.Chart(sheeta_diagram[0].melt("Company",var_name="Time Horizon",value_name="Number") ).mark_line().encode( | |
x=alt.X("Company:N",sort=None), | |
y=alt.Y(f"Number:Q",title="Average Like per Post"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company",f"Number","Time Horizon"], | |
).properties(title=f"رتبه محبوبیت بر اساس {option3_fa[2]}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select3==option3_fa[3]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[3]}") | |
#st.dataframe(sheeta[1]) | |
sheeta[1]["رتبه"]=[i+1 for i in range(len(national_company_name2))] | |
AgGrid(sheeta[1][["رتبه", "یک ماه اخیر","سه ماه اخیر" ,"کل"]],theme="streamlit") | |
st.subheader(f"نمودار خطی محبوبیت بر اساس {option3_fa[3]}") | |
c=alt.Chart(sheeta_diagram[1].melt("Company",var_name="Time Horizon",value_name=kinda12[1])).mark_line().encode( | |
x=alt.X("Company:N",sort=None), | |
y=alt.Y(f"{kinda12[1]}:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company",f"{kinda12[1]}","Time Horizon"], | |
).properties(title=f"رتبه محبوبیت بر اساس {option3_fa[3]}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select3==option3_fa[4]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[4]}") | |
#st.dataframe(sheeta[2]) | |
sheeta[2]["رتبه"]=[i+1 for i in range(len(national_company_name2))] | |
AgGrid(sheeta[2][["رتبه", "یک ماه اخیر","سه ماه اخیر" ,"کل"]],theme="streamlit") | |
st.subheader(f"نمودار خطی محبوبیت بر اساس {option3_fa[4]}") | |
c=alt.Chart(sheeta_diagram[2].melt("Company",var_name="Time Horizon",value_name=kinda12[2])).mark_line().encode( | |
x=alt.X("Company:N",sort=None), | |
y=alt.Y(f"{kinda12[2]}:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company",f"{kinda12[2]}","Time Horizon"], | |
).properties(title=f"رتبه محبوبیت بر اساس {option3_fa[4]}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select3==option3_fa[5]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[5]}") | |
#st.dataframe(sheeta[3]) | |
sheeta[3]["رتبه"]=[i+1 for i in range(len(national_company_name2))] | |
AgGrid(sheeta[3][["رتبه", "یک ماه اخیر","سه ماه اخیر" ,"کل"]],theme="streamlit") | |
st.subheader(f"نمودار خطی محبوبیت بر اساس {option3_fa[5]}") | |
c=alt.Chart(sheeta_diagram[3].melt("Company",var_name="Time Horizon",value_name=kinda12[3]) ).mark_line().encode( | |
x=alt.X("Company:N",sort=None), | |
y=alt.Y(f"{kinda12[3]}:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company",f"{kinda12[3]}","Time Horizon"], | |
).properties(title=f"رتبه محبوبیت بر اساس {option3_fa[5]}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select2==option2_fa[option2.index("Posting Time")]: | |
agree=st.checkbox("نمایش زمان بارگذاری پستها برای هر شرکت") | |
if agree: | |
sel=st.selectbox("انتخاب شرکت",national_company_name_fa) | |
agre=st.checkbox("نمایش روزهای بارگذاری پستها") | |
ind=national_company_name2[national_company_name_fa.index(sel)] | |
sel2=st.selectbox("انتخاب نوع نمودار",["نمودار میلهای","نمودار خطی"]) | |
if agre: | |
if sel2=="نمودار خطی": | |
st.subheader(f"{sel2} روزهای بارگذاری پستها برای {sel}") | |
posttime=pd.DataFrame({ | |
"Day":["شنبه","یکشنبه","دوشنبه","سه شنبه","چهار شنیه","پنجشنبه","جمعه"], | |
"Last Month":data["information"][ind]["analysis"]["time"]["day"]["last_month"], | |
"Last Three Months":data["information"][ind]["analysis"]["time"]["day"]["last_three_months"] , | |
"Overal":data["information"][ind]["analysis"]["time"]["day"]["overal"] | |
}, | |
columns=["Day","Last Month","Last Three Months","Overal"] | |
) | |
st.dataframe(posttime.set_index("Day")) | |
posttime=posttime.melt("Day",var_name="Time Horizon",value_name="Number of Posts") | |
c=alt.Chart(posttime).mark_line().encode( | |
x=alt.X("Day:N",sort=None), | |
y=alt.Y("Number of Posts:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Day","Number of Posts"] | |
).properties(title=f"تعداد پستها در هر روز") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
st.subheader(f"{sel2} روزهای بارگذاری پستها برای {sel}") | |
select7=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
sel7=["last_month","last_three_months","overal"] | |
sel8=["یک ماه اخیر","سه ماه اخیر","کل"] | |
indf=sel8.index(select7) | |
posttime=pd.DataFrame(data={ | |
"Day":["شنبه","یکشنبه","دوشنبه","سه شنبه","چهار شنیه","پنجشنبه","جمعه"], | |
f"{sel8[indf]}":data["information"][ind]["analysis"]["time"]["day"][sel7[indf]] | |
}) | |
st.dataframe(posttime.set_index("Day")) | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("Day",sort=None), | |
y=alt.Y(f"{sel8[indf]}",sort='-x'), | |
color=alt.value("red"), | |
tooltip=["Day",f"{sel8[indf]}"] | |
).properties(title=f"تعداد پستها در هر روز") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else : | |
if sel2=="نمودار خطی": | |
st.subheader(f"{sel2} ساعات بارگذاری پستها برای {sel}") | |
posttime=pd.DataFrame({ | |
"Hour":[i for i in range(24)], | |
"Last Month":data["information"][ind]["analysis"]["time"]["hour"]["last_month"], | |
"Last Three Months":data["information"][ind]["analysis"]["time"]["hour"]["last_three_months"] , | |
"Overal":data["information"][ind]["analysis"]["time"]["hour"]["overal"] | |
}, | |
columns=["Hour","Last Month","Last Three Months","Overal"] | |
) | |
st.dataframe(posttime.set_index("Hour")) | |
posttime=posttime.melt("Hour",var_name="Time Horizon",value_name="Number of Posts") | |
c=alt.Chart(posttime).mark_line().encode( | |
x=alt.X("Hour:N",sort=None), | |
y=alt.Y("Number of Posts:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Hour","Number of Posts"] | |
).properties(title=f"تعداد پستها در هر ساعت") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
agt=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
sel7=["last_month","last_three_months","overal"] | |
sel8=["یک ماه اخیر","سه ماه اخیر","کل"] | |
indf=sel8.index(agt) | |
posttime=pd.DataFrame(data={ | |
"Hour":[i for i in range(24)], | |
f"{agt}":data["information"][ind]["analysis"]["time"]["hour"][sel7[indf]] | |
}) | |
st.dataframe(posttime.set_index("Hour")) | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("Hour",sort=None), | |
y=alt.Y(f"{agt}"), | |
color=alt.value("red"), | |
tooltip=["Hour",f"{agt}"] | |
).properties(title="تعداد پستها در هر ساعت") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
qwe=st.checkbox("نمایش ساعات بارگذاری پستها") | |
if qwe: | |
agre=st.selectbox("انتخاب نوع نمودار",["نمودار میلهای","نمودار خطی"]) | |
if agre=="نمودار خطی": | |
st.subheader(f"{agre} زمان بارگذاری پستها برای شرکتهای داخلی") | |
posttime=pd.DataFrame({ | |
"Hour":[i for i in range(24)], | |
"Last Month":data["pop"]["time"]["national"]["hour"]["last_month"], | |
"Last Three Months":data["pop"]["time"]["national"]["hour"]["last_three_months"], | |
"Overal":data["pop"]["time"]["national"]["hour"]["overal"] | |
}, | |
columns=["Hour","Last Month","Last Three Months","Overal"] | |
) | |
AgGrid(posttime,theme="streamlit") | |
posttime=posttime.melt("Hour",var_name="Time Horizon",value_name="Number of Posts") | |
c=alt.Chart(posttime).mark_line().encode( | |
x=alt.X("Hour:N",sort=None), | |
y=alt.Y("Number of Posts:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Hour","Number of Posts"] | |
).properties(title="تعداد پستها در هر ساعت") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
st.subheader(f"{agre} زمان بارگذاری پستها برای شرکتهای داخلی") | |
agt=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
sel7=["last_month","last_three_months","overal"] | |
sel8=["یک ماه اخیر","سه ماه اخیر","کل"] | |
indf=sel8.index(agt) | |
posttime=pd.DataFrame(data={ | |
"ساعت":[i for i in range(24)], | |
f"تعداد پست ها در {agt}":data["pop"]["time"]["national"]["hour"][sel7[indf]] | |
}) | |
AgGrid(posttime,theme="streamlit") | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("ساعت",sort=None), | |
y=alt.Y(f"تعداد پست ها در {agt}",sort="-x"), | |
color=alt.value("red"), | |
tooltip=["ساعت",f"تعداد پست ها در {agt}"] | |
).properties(title="تعداد پستها در هر ساعت") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
agre=st.selectbox("انتخاب نوع نمودار",["نمودار میلهای","نمودار خطی"]) | |
if agre=="نمودار خطی": | |
st.subheader(f"{agre} روز بارگذاری پستها برای شرکتهای داخلی") | |
posttime=pd.DataFrame({ | |
"Day":["شنبه","یکشنبه","دوشنبه","سه شنبه","چهار شنیه","پنجشنبه","جمعه"], | |
"Last Month":data["pop"]["time"]["national"]["day"]["last_month"], | |
"Last Three Months":data["pop"]["time"]["national"]["day"]["last_three_months"], | |
"Overal":data["pop"]["time"]["national"]["day"]["overal"] | |
}, | |
columns=["Day","Last Month","Last Three Months","Overal"] | |
) | |
AgGrid(posttime,theme="streamlit") | |
posttime=posttime.melt("Day",var_name="Time Horizon",value_name="Number of Posts") | |
c=alt.Chart(posttime).mark_line().encode( | |
x=alt.X("Day:N",sort=None), | |
y=alt.Y("Number of Posts:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Day","Number of Posts"] | |
).properties(title="تعداد پستها در هر روز") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
st.subheader(f"{agre} زمان بارگذاری پستها برای شرکتهای داخلی") | |
agt=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
sel7=["last_month","last_three_months","overal"] | |
sel8=["یک ماه اخیر","سه ماه اخیر","کل"] | |
indf=sel8.index(agt) | |
posttime=pd.DataFrame(data={ | |
"روز":["شنبه","یکشنبه","دوشنبه","سه شنبه","چهار شنیه","پنجشنبه","جمعه"], | |
f"تعداد پست ها در {agt}":data["pop"]["time"]["national"]["day"][sel7[indf]] | |
}) | |
AgGrid(posttime,theme="streamlit") | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("روز",sort=None), | |
y=alt.Y(f"تعداد پست ها در {agt}",sort="-x"), | |
color=alt.value("red"), | |
tooltip=["روز",f"تعداد پست ها در {agt}"] | |
).properties(title="تعداد پستها در هر روز") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select2==option2_fa[option2.index("Content Analysis")]: | |
#st.dataframe(sheet8.set_index("ind")) | |
AgGrid(sheet8.set_index("ind"),theme="streamlit") | |
af=st.selectbox("انتخاب نوع نمودار",["نمودار میلهای","نمودار خطی"]) | |
if af=="نمودار خطی": | |
sheet8diagram=sheet8diagram.melt("Content",var_name="Time Horizon",value_name="Count") | |
c=alt.Chart(sheet8diagram).mark_line().encode( | |
x=alt.X("Content:N",sort=None), | |
y=alt.Y("Count:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Content","Count"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
h=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
if h=="یک ماه اخیر": | |
h1="Last Month" | |
c=alt.Chart(sheet8diagram).mark_bar().encode( | |
x=alt.X("Content",sort=None), | |
y=alt.Y(f"{h1}",title="تعداد شرکتها"), | |
color=alt.value("red"), | |
tooltip=["Content",f"{h1}"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif h=="سه ماه اخیر": | |
h1="Last Three Months" | |
c=alt.Chart(sheet8diagram).mark_bar().encode( | |
x=alt.X("Content",sort=None), | |
y=alt.Y(f"{h1}",title="تعداد شرکتها"), | |
color=alt.value("red"), | |
tooltip=["Content",f"{h1}"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
h1="Overal" | |
c=alt.Chart(sheet8diagram).mark_bar().encode( | |
x=alt.X("Content",sort=None), | |
y=alt.Y(f"{h1}",title="تعداد شرکتها"), | |
color=alt.value("red"), | |
tooltip=["Content",f"{h1}"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select2==option2_fa[option2.index("Popular Posts Link")]: | |
opi=st.selectbox("انتخاب فرم پست",["همه نوع","عکس","ویدیو"]) | |
typee=["all_posts_type","image","video"] | |
time=["last_month","last_three_months","overal"] | |
me=["like","comment","view","feed-back"] | |
me0=["like","comment","feed-back"] | |
if opi=="همه نوع": | |
kin="all_posts_type" | |
opt=st.selectbox("شاخص محبوبیت",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"]) | |
fg=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
time_hor=time[["یک ماه اخیر","سه ماه اخیر","کل"].index(fg)] | |
meter=me[["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"].index(opt)] | |
if meter!="view": | |
df=pd.DataFrame(data={ | |
"شرکت":national_company_name_fa, | |
"رتبه نخست": [f'1=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2], | |
"رتبه دوم":[f'2=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2], | |
"رتبه سوم":[f'3=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.header("برای مشاهده پستها بر روی اعداد کلیک کنید") | |
st.write(df,unsafe_allow_html=True) | |
else: | |
df=pd.DataFrame(data={ | |
"شرکت":national_company_name_fa, | |
"رتبه نخست": [f'1=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][1]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][1]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2], | |
"رتبه دوم":[f'2=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][2]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][2]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2], | |
"رتبه سوم":[f'3=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][3]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][3]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.header("برای مشاهده پستها بر روی اعداد کلیک کنید") | |
st.write(df,unsafe_allow_html=True) | |
elif opi=="ویدیو" : | |
kin="video" | |
opt=st.selectbox("شاخص محبوبیت",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"]) | |
fg=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
time_hor=time[["یک ماه اخیر","سه ماه اخیر","کل"].index(fg)] | |
meter=me[["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"].index(opt)] | |
df=pd.DataFrame(data={ | |
"شرکت":national_company_name_fa, | |
"رتبه نخست": [f'1=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2], | |
"رتبه دوم":[f'2=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2], | |
"رتبه سوم":[f'3=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.header("برای مشاهده پستها بر روی اعداد کلیک کنید") | |
st.write(df,unsafe_allow_html=True) | |
else: | |
kin="image" | |
opt=st.selectbox("شاخص محبوبیت",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"]) | |
fg=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
time_hor=time[["یک ماه اخیر","سه ماه اخیر","کل"].index(fg)] | |
meter=me[["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"].index(opt)] | |
df=pd.DataFrame(data={ | |
"شرکت":national_company_name_fa, | |
"رتبه نخست": [f'1=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2], | |
"رتبه دوم":[f'2=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2], | |
"رتبه سوم":[f'3=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["count"]!=0 else "پستی موجود نیست" for i in national_company_name2] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.header("برای مشاهده پستها بر روی اعداد کلیک کنید") | |
st.write(df,unsafe_allow_html=True) | |
elif select2==option2_fa[option2.index("Form of Posts")]: | |
AgGrid(sheet_data,theme="streamlit") | |
f=st.checkbox("مشاهده تحلیل آماری") | |
if f: | |
st_profile_report(sheet_data.profile_report()) | |
else: | |
h=st.selectbox("Choose the Column",sheet_data.columns.values.tolist()[1:]) | |
st.subheader("Bar Chart") | |
c=alt.Chart(sheet_data).mark_bar().encode( | |
x=alt.X("Company",sort=None), | |
y=alt.Y(h), | |
color=alt.value("red"), | |
tooltip=["Company",h] | |
).properties(title=f"Bar Chart {h}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
st.subheader("Histogram") | |
hist_data = pd.DataFrame(tuple(sheet_data[h]) , columns=["x"]) | |
def altair_histogram(a=11): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title=h), y=alt.Y("count()",title="Number of Posts")) | |
.add_selection(brushed).properties(title=f"Histogram of {h}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=11)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Interaction Analysis")]: | |
jk=[sheet3like,sheet3comment,sheet3view,sheet3participation,sheet3image,sheet3postperday] | |
df=pd.DataFrame(data={ | |
"شرکت":national_company_name_fa , | |
"تعداد دنبال کنندگان":sheet2bar["Followers"], | |
" میانگین نرخ پسندیده شدن (لایک) در یک ماه اخیر":[jk[0][0][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
" میانگین نرخ پسندیده شدن (لایک) در سه ماه اخیر":[jk[0][1][i]/sheet2bar["Followers"][i] for i in range(19)], | |
" میانگین نرخ پسندیده شدن (لایک) در کل": [jk[0][2][i]/sheet2bar["Followers"][i] for i in range(19)], | |
" میانگین نرخ نظرات (کامنت) در یک ماه اخیر": [jk[1][0][i]/sheet2bar["Followers"][i] for i in range(19)], | |
" میانگین نرخ نظرات (کامنت) در سه ماه اخیر":[jk[1][1][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
" میانگین نرخ نظرات (کامنت) در کل":[jk[1][2][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
" میانگین نرخ بازدید (ویوو) در یک ماه اخیر":[jk[2][0][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
" میانگین نرخ نظرات (کامنت) در سه ماه اخیر":[jk[2][1][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
" میانگین نرخ نظرات (کامنت) در کل ":[jk[2][2][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
" میانگین نرخ مشارکت در یک ماه اخیر":[jk[3][0][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
" میانگین نرخ مشارکت در سه ماه اخیر":[jk[3][1][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
" میانگین نرخ مشارکت در کل":[jk[3][2][i]/sheet2bar["Followers"][i] for i in range(19)] , | |
"٪ تصاوری در یک ماه اخیر":jk[4][0] , | |
"٪ تصاوری در سه ماه اخیر":jk[4][1] , | |
"٪ تصاوری در یک ماه کل":jk[4][2] , | |
"میانگین تعداد پست بارگذاری شده در یک روز در یک ماه اخیر":jk[5][0] , | |
"میانگین تعداد پست بارگذاری شده در یک روز در سه ماه اخیر":jk[5][1] , | |
"میانگین تعداد پست بارگذاری شده در یک روز در کل":jk[5][2] , | |
}) | |
AgGrid(df,theme="streamlit") | |
vari=[[' میانگین نرخ پسندیده شدن (لایک) در یک ماه اخیر', ' میانگین نرخ پسندیده شدن (لایک) در سه ماه اخیر', ' میانگین نرخ پسندیده شدن (لایک) در کل'], [' میانگین نرخ نظرات (کامنت) در یک ماه اخیر', ' میانگین نرخ نظرات (کامنت) در سه ماه اخیر', ' میانگین نرخ نظرات (کامنت) در کل'], [' میانگین نرخ بازدید (ویوو) در یک ماه اخیر', ' میانگین نرخ نظرات (کامنت) در سه ماه اخیر', ' میانگین نرخ نظرات (کامنت) در کل '], [' میانگین نرخ مشارکت در یک ماه اخیر', ' میانگین نرخ مشارکت در سه ماه اخیر', ' میانگین نرخ مشارکت در کل'], ['٪ تصاوری در یک ماه اخیر', '٪ تصاوری در سه ماه اخیر', '٪ تصاوری در یک ماه کل'], ['میانگین تعداد پست بارگذاری شده در یک روز در یک ماه اخیر', 'میانگین تعداد پست بارگذاری شده در یک روز در سه ماه اخیر', 'میانگین تعداد پست بارگذاری شده در یک روز در کل']] | |
st.subheader("نمودار خطی چند متغییره") | |
fg=st.multiselect("متغییر ها را انتخاب کنید",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","مشارکت"],["پسندیده شدن (لایک)","نظرات (کامنت)"],key=35) | |
tiem=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"],key=36) | |
r=["یک ماه اخیر","سه ماه اخیر","کل"].index(tiem) | |
lenfg=len(fg) | |
posttime=pd.DataFrame(data={ | |
"Company":national_company_name_fa | |
} | |
) | |
for i in fg: | |
ind=["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","مشارکت"].index(i) | |
posttime[f"{i}"]=df[vari[ind][r]] | |
c=alt.Chart(posttime.melt("Company",var_name="Variables",value_name="Rate")).mark_line().encode( | |
x=alt.X("Company:N",sort=None,title="شرکت"), | |
y=alt.Y("Rate:Q",title=f"نرخ میانگین"), | |
color=alt.Color("Variables:N"), | |
tooltip=["Company","Rate"] | |
).properties(title=f"نرخ میانگین در {tiem}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
st.subheader("تحلیل تک متغییره") | |
asd=st.selectbox("متغییر را انتخاب کنید",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","مشارکت"],key=30) | |
ind=["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","مشارکت"].index(asd) | |
posttime=pd.DataFrame(data={ | |
"Company":national_company_name_fa, | |
"Last Month": df[vari[ind][0]], | |
"Last Three Months": df[vari[ind][1]], | |
"Overal":df[vari[ind][2]] | |
} | |
) | |
st.subheader("نمودار خطی") | |
c=alt.Chart(posttime.melt("Company",var_name="Time Horizon",value_name="Rate")).mark_line().encode( | |
x=alt.X("Company:N",sort=None,title="شرکت"), | |
y=alt.Y("Rate:Q",title=f"نرخ {asd}"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Rate"] | |
).properties(title=f"نرخ میانگین {asd} تغییرات") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
asdo=st.selectbox(" انتخاب افق زمانی برای نمودار میلهای و هیستوگرام",["یک ماه اخیر","سه ماه اخیر","کل"],key=391) | |
indp=["یک ماه اخیر","سه ماه اخیر","کل"].index(asdo) | |
asdo1=["Last Month","Last Three Months","Overal"][indp] | |
st.subheader("نمودار میلهای") | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("Company",sort=None,title="شرکت"), | |
y=alt.Y(asdo1,title=f"نرخ",sort="-x"), | |
color=alt.value("red"), | |
tooltip=["Company",asdo1] | |
).properties(title=f" نمودار میلهای نرخ {asd} در {asdo}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
st.subheader("هیستوگرام") | |
hist_data = pd.DataFrame(tuple(posttime[asdo1]) , columns=["x"]) | |
def altair_histogram(a=172+indp): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title=f"نرخ"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام نرخ {asd}در {asdo}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=172+indp)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
############################################################33 international starts here________________________________________________________________________________________-- | |
elif select1==option1[2]: | |
select2=st.sidebar.selectbox("نوع تحلیل مورد نظر را انتخاب کنید",option2_fa,key=203) | |
if select2==option2_fa[0]: | |
st.write(sheet1_1, unsafe_allow_html=True) | |
st.subheader("تعداد حساب های کاربری در شبکههای اجتماعی برای شرکتهای بین المللی") | |
agree=st.checkbox("نمایش نمودار دایره ای") | |
if agree: | |
st.header("نمودار دایره ای") | |
Social_Medias=['Instagram','FaceBook','Pintrest','Twitter','Youtube','LinkedIn','WhatsApp'] | |
Popularities=[12,12,4,7,11,2,0] | |
fig = go.Figure( | |
go.Pie( | |
hole = 0.3, | |
labels = Social_Medias, | |
values = Popularities, | |
hoverinfo = "label+percent", | |
textinfo = "value" | |
)) | |
st.plotly_chart(fig) | |
else: | |
st.header("نمودار میله ای") | |
c = alt.Chart(dfsheet0_1).mark_bar().encode(x=alt.X('Companies', sort=None),y='The Number of Accounts',color=(alt.value('red'))).interactive() | |
st.altair_chart(c, use_container_width=True) | |
elif select2==option2_fa[option2.index("Popularities")]: | |
#st.dataframe(sheet2) | |
AgGrid(sheet2_1,theme="streamlit") | |
#st.dataframe(sheet2_1) | |
agree=st.checkbox("نمایش نمودار به تعداد پست ها") | |
if agree: | |
st.subheader("نمودار میله ای تعداد پست ها") | |
c = alt.Chart(sheet2barpost_1).mark_bar().encode(x=alt.X('Companies', sort=None),y='Number of posts',color=(alt.value('red'))).interactive() | |
st.altair_chart(c, use_container_width=True) | |
else: | |
c = alt.Chart(sheet2bar_1).mark_bar().encode(x=alt.X('Companies', sort=None),y='Followers',color=(alt.value('red'))).interactive() | |
st.altair_chart(c, use_container_width=True) | |
#agre=st.checkbox("نمایش نمودار به تعداد پست ها",key=903) | |
if not agree : | |
st.subheader("هیستوگرام تعداد دنبال کنندگان") | |
hist_data = pd.DataFrame(tuple(sheet2bar_1["Followers"]) , columns=["x"]) | |
def altair_histogram(a=13): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="تعداد دنبال کنندگان"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"Histogram") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=13)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
else: | |
st.subheader("هیستوگرام تعداد پستها") | |
hist_data = pd.DataFrame(tuple(sheet2barpost_1["Number of posts"]) , columns=["x"]) | |
def altair_histogram(a=14): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Number of Posts"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"Histogram") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=14)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Posts Analysis")] : | |
jk=[sheet3like_1,sheet3comment_1,sheet3view_1,sheet3participation_1,sheet3image_1,sheet3postperday_1] | |
begri=st.checkbox("تغییر نمایش به عمودی") | |
if begri: | |
df=pd.DataFrame(data={ | |
"شرکت":international_company_name_fa , | |
"میانگین میزان پسندیده شدن در یک ماه اخیر":jk[0][0] , | |
"میانگین میزان پسندیده شدن در سه ماه اخیر":jk[0][1] , | |
"میانگین میزان پسندیده شدن در کل":jk[0][2] , | |
"میانگین تعداد نظرات در یک ماه اخیر":jk[1][0] , | |
"میانگین تعداد نظرات در سه ماه اخیر":jk[1][1] , | |
"میانگین تعداد نظرات در کل":jk[1][2] , | |
"میانگین تعداد بازدید ها در یک ماه اخیر":jk[2][0] , | |
"میانگین تعداد بازدیدها در سه ماه اخیر":jk[2][1] , | |
"میانگین تعداد بازدید ها در کل":jk[2][2] , | |
"میانگین مشارکت در یک ماه اخیر":jk[3][0] , | |
"میانگین مشارکت در سه ماه اخیر":jk[3][1] , | |
"میانگین مشارکت در کل":jk[3][2] , | |
"٪ تعداد تصاویر در یک ماه اخیر":jk[4][0] , | |
"٪ تعداد تصاویر در سه ماه اخیر":jk[4][1] , | |
"٪ تعداد تصاویر در کل":jk[4][2] , | |
"میانگین روزانه تعداد پست های بار کذاری شده در یک ماه اخیر":jk[5][0] , | |
"میانگین روزانه تعداد پست های بارگذاری شده در سه ماه اخیر":jk[5][1] , | |
"میانگین روزانه تعداد پست های بارگذاری شده در کل":jk[5][2] , | |
}) | |
AgGrid(df,theme="streamlit") | |
else: | |
AgGrid(sheet3_1,theme="streamlit") | |
agree=st.selectbox("انتخاب نوع نمودار",["هیستوگرام","حبابی","میلهای"]) | |
jv_fa=["میانگین تعداد پسندیده شدن","میانگین تعداد نظرات","میانگین تعداد بازدید","میانگین مشارکت","٪ تصاویر","میانگین تعداد پستهای روزانه"] | |
select5=st.selectbox("متغییر مورد نظر را انتخاب کنید",jv_fa) | |
jv=["Average Like","Average Comment","Average View","Average Participation","% of image","Average Post per Day"] | |
ind=jv_fa.index(select5) | |
opt=["Last Month","Last Three Month","Overal"] | |
opt_fa=["یک ماه اخیر","سه ماه اخیر","کل"] | |
select6=st.selectbox("انتخاب بازه زمانی",opt_fa) | |
indi=opt_fa.index(select6) | |
if agree=="حبابی": | |
st.subheader(f"نمودار حبابی {jv_fa[ind]} در {opt_fa[indi]} ") | |
ddp=pd.DataFrame(data={"Company":international_company_name_fa,jv[ind]:jk[ind][indi],"Followers":sheet3_1followers,"Rank of Popularity":ranki_1}) | |
c=alt.Chart(ddp).mark_point(color="red",filled=True,opacity=0.4).encode( | |
x="Followers", | |
y=jv[ind], | |
size="Followers", | |
tooltip=["Company","Followers",jv[ind],"Rank of Popularity"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif agree=="میلهای": | |
st.subheader(f"نمودار میلهای {jv_fa[ind]} در {opt_fa[indi]} ") | |
ddp=pd.DataFrame(data={"Company":international_company_name_fa,jv[ind]:jk[ind][indi],"Followers":sheet3_1followers,"Rank of Popularity":ranki_1}) | |
c=alt.Chart(ddp).mark_bar().encode(x=alt.X("Company",sort=None),y=jv[ind],color=(alt.value("red")),tooltip=["Company",jv[ind],"Followers","Rank of Popularity"]).interactive() | |
st.altair_chart(c,use_container_width=True) | |
else: | |
st.subheader(f"هیستوگرام {jv_fa[ind]} در {opt_fa[indi]} ") | |
hist_data = pd.DataFrame(tuple(jk[ind][indi]) , columns=["x"]) | |
def altair_histogram(a=415+ind+4*indi): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title=f"{jv_fa[ind]} در {opt_fa[indi]}"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"هیستوگرام") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=415+ind+4*indi)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Hashtags Analysis")]: | |
al=st.checkbox("نمایش متغییر ها به حالت عمودی") | |
if al: | |
df=pd.DataFrame(data={ | |
"شرکتها":international_company_name_fa, | |
"میانگین تعداد هشتگهای مورد استفاده در هر پست در یک ماه اخیر" :capdia4[0]["Last Month"] , | |
"میانگین تعداد هشتگهای مورد استفاده در هر پست در سه ماه اخیر" : capdia4[0]["Last Three Months"], | |
"میانگین تعداد هشتگهای مورد استفاده در هر پست در کل" :capdia4[0]["Overal"] , | |
"بیشترین تعداد هشتگهای مورد استفاده در یک پست در یک ماه اخیر":capdia4[1]["Last Month"], | |
"بیشترین تعداد هشتگهای مورد استفاده در یک پست در سه ماه اخیر":capdia4[1]["Last Three Months"], | |
"بیشترین تعداد هشتگهای مورد استفاده در یک پست در کل":capdia4[1]["Overal"], | |
}) | |
AgGrid(df,theme="streamlit") | |
else: | |
AgGrid(sheet4_1,theme="streamlit") | |
agree=st.checkbox("نمایش نمودارهای بیشترین تعداد هشتگ مورد استفاده در یک پست") | |
if agree: | |
st.subheader("بیشترین تعداد هشتگ مورد استفاده در یک پست") | |
chart = alt.Chart(capdia4[1].melt('Company', var_name='Time Horizon', value_name='Number')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Number:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Number"], | |
).properties(title=" بیشترین تعداد هشتگ مورد استفاده در یک پست") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=10) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia4[1][qwe1]) , columns=["x"]) | |
def altair_histogram(a=760+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Maxiumum number of hashtags"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"هیستوگرام بیشترین تعداد هشتگهای استفاده شده در یک پست در {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=760+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
else : | |
st.subheader(" میانگین تعداد هشتگهای استفاده شده در هر پست") | |
chart = alt.Chart(capdia4[0].melt('Company', var_name='Time Horizon', value_name='Number')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Number:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Number"], | |
).properties(title="میانگین تعداد هشتگها") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=9) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia4[0][qwe1]) , columns=["x"]) | |
def altair_histogram(a=560+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="تعداد هشتگها"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام میانگین هشتگهای استفاده شده در هر پست در {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=560+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Emoji Analysis")]: | |
#st.dataframe(sheet5_1) | |
al=st.checkbox("نمایش متغییر ها به حالت عمودی") | |
if al: | |
df=pd.DataFrame(data={ | |
"شرکتها":international_company_name_fa, | |
"میانگین تعداد اموجیهای مورد استفاده در هر پست در یک ماه اخیر" :capdia5[0]["Last Month"] , | |
"میانگین تعداد اموجیهای مورد استفاده در هر پست در سه ماه اخیر" : capdia5[0]["Last Three Months"], | |
"میانگین تعداد اموجیهای مورد استفاده در هر پست در کل" :capdia5[0]["Overal"] , | |
"بیشترین تعداد اموجیهای مورد استفاده در یک پست در یک ماه اخیر":capdia5[1]["Last Month"], | |
"بیشترین تعداد اموجیهای مورد استفاده در یک پست در سه ماه اخیر":capdia5[1]["Last Three Months"], | |
"بیشترین تعداد اموجیهای مورد استفاده در یک پست در کل":capdia5[1]["Overal"], | |
}) | |
AgGrid(df,theme="streamlit") | |
else: | |
AgGrid(sheet5_1,theme="streamlit") | |
agree=st.checkbox("نمایش نمودارهای بیشترین تعداد اموجیهای مورد استفاده در یک پست") | |
if agree: | |
st.subheader("بیشتری تعداد اموجیهای مورد استفاده در یک پست") | |
chart = alt.Chart(capdia5[1].melt('Company', var_name='Time Horizon', value_name='Number')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Number:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Number"], | |
).properties(title="بیشترین تعداد اموجی استفاده شده") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=15) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia5[1][qwe1]) , columns=["x"]) | |
def altair_histogram(a=607+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="Maxiumum number of emoijes"), y=alt.Y("count()",title="Frequency")) | |
.add_selection(brushed).properties(title=f"هیستوگرام بیشتری تعداد اموجی مورد استفاده در یک پست {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=607+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
else : | |
st.subheader("میانگین تعداد اموجیهای مورد استفاده در هر پست") | |
chart = alt.Chart(capdia5[0].melt('Company', var_name='Time Horizon', value_name='Number')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Number:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Number"], | |
).properties(title="میانگین تعداد اموجی ها") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=16) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia40[0][qwe1]) , columns=["x"]) | |
def altair_histogram(a=809+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="میانگین تعداد اموجیها"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام میانگین تعداد اموجیهای در هر پست {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=809+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Caption Analysis")]: | |
#st.dataframe(sheet6_1) | |
al=st.checkbox("نمایش متغییر ها به حالت عمودی") | |
if al: | |
df=pd.DataFrame(data={ | |
"شرکتها":international_company_name_fa, | |
"میانگین تعداد لغات مورد استفاده در هر پست در یک ماه اخیر" :capdia[0]["Last Month"] , | |
"میانگین تعداد لغات مورد استفاده در هر پست در سه ماه اخیر" : capdia[0]["Last Three Months"], | |
"میانگین تعداد لغات مورد استفاده در هر پست در کل" :capdia[0]["Overal"] , | |
"بیشترین تعداد لغات مورد استفاده در یک پست در یک ماه اخیر":capdia[1]["Last Month"], | |
"بیشترین تعداد لغات مورد استفاده در یک پست در سه ماه اخیر":capdia[1]["Last Three Months"], | |
"بیشترین تعداد لغات مورد استفاده در یک پست در کل":capdia[1]["Overal"], | |
}) | |
AgGrid(df,theme="streamlit") | |
else: | |
AgGrid(sheet6_1,theme="streamlit") | |
agree=st.checkbox("نمایش نمودارهای بیشترین تعداد لغات مورد استفاده در یک پست") | |
if agree: | |
st.subheader("(لغات ایستایی نظیر از، به، با و ... حساب نشده اند) بیشترین تعداد لغات مورد استفاده در یک پست") | |
chart = alt.Chart(capdia[1].melt('Company', var_name='Time Horizon', value_name='Lenght')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Lenght:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Lenght"], | |
).properties(title="بیشترین تعداد لغات مورد استفاده") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=21) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia[1][qwe1]) , columns=["x"]) | |
def altair_histogram(a=739+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="طول نظرات"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام بیشترین تعداد لغات مورد استفاده در یک پست در {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=739+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
else : | |
st.subheader("(لغات ایستایی نظیر از، به، با و ... حساب نشده اند) میانگین تعداد لغات مورد استفاده در هر پست") | |
chart = alt.Chart(capdia[0].melt('Company', var_name='Time Horizon', value_name='Lenght')).mark_line().encode( | |
x=alt.X('Company:N'), | |
y=alt.Y('Lenght:Q'), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Lenght"], | |
).properties(title="میانگین تعداد لغات مورد استفاده") | |
st.altair_chart(chart.interactive(), use_container_width=True) | |
hori=["یک ماه اخیر","سه ماه اخیر","کل"] | |
qwe=st.selectbox("افق زمانی را انتخاب کنید",hori,key=20) | |
fgl=["Last Month","Last Three Months","Overal"] | |
qwe1=fgl[hori.index(qwe)] | |
hist_data = pd.DataFrame(tuple(capdia[0][qwe1]) , columns=["x"]) | |
def altair_histogram(a=560+hori.index(qwe)): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title="میانگین طول نظرات"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام میانگین تعداد لغات مورد استفاده در هر پست در {qwe}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=560+hori.index(qwe))) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Populars")]: | |
select3=st.sidebar.selectbox("شاخص محبوبیت برای رتبه بندی را انتخاب کنید",option3_fa,key=303) | |
if select3==option3_fa[0]: | |
st.write("محبوبیت شبکههای اجتماعی در میان شرکتهای بین المللی") | |
#st.dataframe(df12_1) | |
AgGrid(df12_1,theme="streamlit") | |
c = alt.Chart(df23_1).mark_bar().encode(x=alt.X('Social Medias', sort=None),y='The Number of Companies That Are Active In It',color=(alt.value('red'))).interactive() | |
st.altair_chart(c, use_container_width=True) | |
elif select3==option3_fa[1]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[1]}") | |
#st.dataframe(sheet7a_1) | |
AgGrid(sheet7a_1,theme="streamlit") | |
c=alt.Chart(sheet7a_1).mark_bar().encode(x=alt.X("Companies Popularitites Based on Followers (sorted in decending order)",sort=None,title="Companies"),y=alt.Y("Followers",sort='-x'),tooltip=["Followers"],color=(alt.value('red'))) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select3==option3_fa[2]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[2]}") | |
#st.dataframe(sheeta_1[0]) | |
#sheeta_1[0]["Rank"]=[i+1 for i in range(len(international_company_name2))] | |
sheeta_1[0]["رتبه"]=[i+1 for i in range(len(international_company_name2))] | |
AgGrid(sheeta_1[0][["رتبه", "یک ماه اخیر","سه ماه اخیر" ,"کل"]],theme="streamlit") | |
#AgGrid(sheeta_1[0][["Rank", "Last Month","Last Three Months" ,"Overal"]],theme="streamlit") | |
st.subheader(f"نمودار خطی محبوبیت بر اساس {option3_fa[2]}") | |
c=alt.Chart(sheeta_1diagram[0]).mark_line().encode( | |
x=alt.X("Company:N",sort=None), | |
y=alt.Y(f"{kinda12[0]}:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company",f"{kinda12[0]}","Time Horizon"], | |
).properties(title=f"رتبه محبوبیت بر اساس {option3_fa[2]}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select3==option3_fa[3]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[3]}") | |
#st.dataframe(sheeta_1[1]) | |
#sheeta_1[1]["Rank"]=[i+1 for i in range(len(international_company_name2))] | |
#AgGrid(sheeta_1[1][["Rank", "Last Month","Last Three Months" ,"Overal"]],theme="streamlit") | |
sheeta_1[1]["رتبه"]=[i+1 for i in range(len(international_company_name2))] | |
AgGrid(sheeta_1[1][["رتبه", "یک ماه اخیر","سه ماه اخیر" ,"کل"]],theme="streamlit") | |
st.subheader(f"نمودار خطی محبوبیت بر اساس {option3_fa[3]}") | |
c=alt.Chart(sheeta_1diagram[1]).mark_line().encode( | |
x=alt.X("Company:N",sort=None), | |
y=alt.Y(f"{kinda12[1]}:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company",f"{kinda12[1]}","Time Horizon"], | |
).properties(title=f"رتبه محبوبیت بر اساس {option3_fa[3]}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select3==option3_fa[4]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[4]}") | |
#st.dataframe(sheeta_1[2]) | |
#sheeta_1[2]["Rank"]=[i+1 for i in range(len(international_company_name2))] | |
#AgGrid(sheeta_1[2][["Rank", "Last Month","Last Three Months" ,"Overal"]],theme="streamlit") | |
#st.subheader(f"The Line Chart of Popularities Using {kinda12[2]}") | |
sheeta_1[2]["رتبه"]=[i+1 for i in range(len(international_company_name2))] | |
AgGrid(sheeta_1[2][["رتبه", "یک ماه اخیر","سه ماه اخیر" ,"کل"]],theme="streamlit") | |
st.subheader(f"نمودار خطی محبوبیت بر اساس {option3_fa[4]}") | |
c=alt.Chart(sheeta_1diagram[2]).mark_line().encode( | |
x=alt.X("Company:N",sort=None), | |
y=alt.Y(f"{kinda12[2]}:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company",f"{kinda12[2]}","Time Horizon"], | |
).properties(title=f"رتبه محبوبیت بر اساس {option3_fa[4]}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select3==option3_fa[5]: | |
st.write(f"شرکتهای محبوب بر اساس {option3_fa[5]}") | |
#st.dataframe(sheeta_1[3]) | |
#sheeta_1[3]["Rank"]=[i+1 for i in range(len(international_company_name2))] | |
#AgGrid(sheeta_1[3][["Rank", "Last Month","Last Three Months" ,"Overal"]],theme="streamlit") | |
sheeta_1[3]["رتبه"]=[i+1 for i in range(len(international_company_name2))] | |
AgGrid(sheeta_1[3][["رتبه", "یک ماه اخیر","سه ماه اخیر" ,"کل"]],theme="streamlit") | |
st.subheader(f"نمودار خطی محبوبیت بر اساس {option3_fa[5]}") | |
c=alt.Chart(sheeta_1diagram[3]).mark_line().encode( | |
x=alt.X("Company:N",sort=None), | |
y=alt.Y(f"{kinda12[3]}:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company",f"{kinda12[3]}","Time Horizon"], | |
).properties(title=f"رتبه محبوبیت بر اساس {option3_fa[5]}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select2==option2_fa[option2.index("Posting Time")]: | |
option_post=international_company_name | |
agree=st.checkbox("نمایش زمان بارگذاری پستها برای هر شرکت") | |
if agree: | |
sel=st.selectbox("انتخاب شرکت",international_company_name_fa) | |
agre=st.checkbox("نمایش روزهای بارگذاری پستها") | |
ind=international_company_name2[international_company_name_fa.index(sel)] | |
sel2=st.selectbox("انتخاب نوع نمودار",["نمودار میلهای","نمودار خطی"]) | |
if agre: | |
if sel2=="نمودار خطی": | |
st.subheader(f"{sel2} روزهای بارگذاری پستها برای {sel}") | |
posttime=pd.DataFrame({ | |
"Day":["شنبه","یکشنبه","دوشنبه","سه شنبه","چهار شنیه","پنجشنبه","جمعه"], | |
"Last Month":data["information"][ind]["analysis"]["time"]["day"]["last_month"], | |
"Last Three Months":data["information"][ind]["analysis"]["time"]["day"]["last_three_months"] , | |
"Overal":data["information"][ind]["analysis"]["time"]["day"]["overal"] | |
}, | |
columns=["Day","Last Month","Last Three Months","Overal"] | |
) | |
st.dataframe(posttime.set_index("Day")) | |
posttime=posttime.melt("Day",var_name="Time Horizon",value_name="Number of Posts") | |
c=alt.Chart(posttime).mark_line().encode( | |
x=alt.X("Day:N",sort=None), | |
y=alt.Y("Number of Posts:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Day","Number of Posts"] | |
).properties(title=f"تعداد پستها در هر روز") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
st.subheader(f"{sel2} روزهای بارگذاری پستها برای {sel}") | |
select7=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
sel7=["last_month","last_three_months","overal"] | |
sel8=["یک ماه اخیر","سه ماه اخیر","کل"] | |
indf=sel8.index(select7) | |
posttime=pd.DataFrame(data={ | |
"Day":["شنبه","یکشنبه","دوشنبه","سه شنبه","چهار شنیه","پنجشنبه","جمعه"], | |
f"{sel8[indf]}":data["information"][ind]["analysis"]["time"]["day"][sel7[indf]] | |
}) | |
st.dataframe(posttime.set_index("Day")) | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("Day",sort=None), | |
y=alt.Y(f"{sel8[indf]}",sort='-x'), | |
color=alt.value("red"), | |
tooltip=["Day",f"{sel8[indf]}"] | |
).properties(title=f"تعداد پستها در هر روز") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else : | |
if sel2=="نمودار خطی": | |
st.subheader(f"{sel2} ساعات بارگذاری پستها برای {sel}") | |
posttime=pd.DataFrame({ | |
"Hour":[i for i in range(24)], | |
"Last Month":data["information"][ind]["analysis"]["time"]["hour"]["last_month"], | |
"Last Three Months":data["information"][ind]["analysis"]["time"]["hour"]["last_three_months"] , | |
"Overal":data["information"][ind]["analysis"]["time"]["hour"]["overal"] | |
}, | |
columns=["Hour","Last Month","Last Three Months","Overal"] | |
) | |
st.dataframe(posttime.set_index("Hour")) | |
posttime=posttime.melt("Hour",var_name="Time Horizon",value_name="Number of Posts") | |
c=alt.Chart(posttime).mark_line().encode( | |
x=alt.X("Hour:N",sort=None), | |
y=alt.Y("Number of Posts:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Hour","Number of Posts"] | |
).properties(title=f"تعداد پستها در هر ساعت") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
agt=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
sel7=["last_month","last_three_months","overal"] | |
sel8=["یک ماه اخیر","سه ماه اخیر","کل"] | |
indf=sel8.index(agt) | |
posttime=pd.DataFrame(data={ | |
"Hour":[i for i in range(24)], | |
f"{agt}":data["information"][ind]["analysis"]["time"]["hour"][sel7[indf]] | |
}) | |
st.dataframe(posttime.set_index("Hour")) | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("Hour",sort=None), | |
y=alt.Y(f"{agt}"), | |
color=alt.value("red"), | |
tooltip=["Hour",f"{agt}"] | |
).properties(title="تعداد پستها در هر ساعت") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
qwe=st.checkbox("نمایش ساعات بارگذاری پستها") | |
if qwe: | |
agre=st.selectbox("انتخاب نوع نمودار",["نمودار میلهای","نمودار خطی"]) | |
if agre=="نمودار خطی": | |
st.subheader(f"{agre} زمان بارگذاری پستها برای شرکتهای بین المللی") | |
posttime=pd.DataFrame({ | |
"Hour":[i for i in range(24)], | |
"Last Month":data["pop"]["time"]["international"]["hour"]["last_month"], | |
"Last Three Months":data["pop"]["time"]["international"]["hour"]["last_three_months"], | |
"Overal":data["pop"]["time"]["international"]["hour"]["overal"] | |
}, | |
columns=["Hour","Last Month","Last Three Months","Overal"] | |
) | |
AgGrid(posttime,theme="streamlit") | |
posttime=posttime.melt("Hour",var_name="Time Horizon",value_name="Number of Posts") | |
c=alt.Chart(posttime).mark_line().encode( | |
x=alt.X("Hour:N",sort=None), | |
y=alt.Y("Number of Posts:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Hour","Number of Posts"] | |
).properties(title="تعداد پستها در هر ساعت") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
st.subheader(f"{agre} زمان بارگذاری پستها برای شرکتهای بین المللی") | |
agt=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
sel7=["last_month","last_three_months","overal"] | |
sel8=["یک ماه اخیر","سه ماه اخیر","کل"] | |
indf=sel8.index(agt) | |
posttime=pd.DataFrame(data={ | |
"ساعت":[i for i in range(24)], | |
f"تعداد پست ها در {agt}":data["pop"]["time"]["international"]["hour"][sel7[indf]] | |
}) | |
AgGrid(posttime,theme="streamlit") | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("ساعت",sort=None), | |
y=alt.Y(f"تعداد پست ها در {agt}",sort="-x"), | |
color=alt.value("red"), | |
tooltip=["ساعت",f"تعداد پست ها در {agt}"] | |
).properties(title="تعداد پستها در هر ساعت") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
agre=st.selectbox("انتخاب نوع نمودار",["نمودار میلهای","نمودار خطی"]) | |
if agre=="نمودار خطی": | |
st.subheader(f"{agre} روز بارگذاری پستها برای شرکتهای داخلی") | |
posttime=pd.DataFrame({ | |
"Day":["شنبه","یکشنبه","دوشنبه","سه شنبه","چهار شنیه","پنجشنبه","جمعه"], | |
"Last Month":data["pop"]["time"]["international"]["day"]["last_month"], | |
"Last Three Months":data["pop"]["time"]["international"]["day"]["last_three_months"], | |
"Overal":data["pop"]["time"]["international"]["day"]["overal"] | |
}) | |
AgGrid(posttime,theme="streamlit") | |
posttime=posttime.melt("Day",var_name="Time Horizon",value_name="Number of Posts") | |
c=alt.Chart(posttime).mark_line().encode( | |
x=alt.X("Day:N",sort=None), | |
y=alt.Y("Number of Posts:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Day","Number of Posts"] | |
).properties(title="تعداد پستها در هر روز") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
st.subheader(f"{agre} زمان بارگذاری پستها برای شرکتهای بین المللی") | |
agt=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
sel7=["last_month","last_three_months","overal"] | |
sel8=["یک ماه اخیر","سه ماه اخیر","کل"] | |
indf=sel8.index(agt) | |
posttime=pd.DataFrame(data={ | |
"روز":["شنبه","یکشنبه","دوشنبه","سه شنبه","چهار شنیه","پنجشنبه","جمعه"], | |
f"تعداد پست ها در {agt}":data["pop"]["time"]["international"]["day"][sel7[indf]] | |
}) | |
AgGrid(posttime,theme="streamlit") | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("روز",sort=None), | |
y=alt.Y(f"تعداد پست ها در {agt}",sort="-x"), | |
color=alt.value("red"), | |
tooltip=["روز",f"تعداد پست ها در {agt}"] | |
).properties(title="تعداد پستها در هر روز") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select2==option2_fa[option2.index("Content Analysis")]: | |
#st.dataframe(sheet8_1.set_index("ind")) | |
AgGrid(sheet8_1.set_index("ind"),theme="streamlit") | |
af=st.selectbox("انتخاب نوع نمودار",["نمودار میلهای","نمودار خطی"]) | |
if af=="نمودار خطی": | |
sheet8_1diagram=sheet8_1diagram.melt("Content",var_name="Time Horizon",value_name="Count") | |
c=alt.Chart(sheet8_1diagram).mark_line().encode( | |
x=alt.X("Content:N",sort=None), | |
y=alt.Y("Count:Q"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Content","Count"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
h=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
if h=="یک ماه اخیر": | |
h1="Last Month" | |
c=alt.Chart(sheet8_1diagram).mark_bar().encode( | |
x=alt.X("Content",sort=None), | |
y=alt.Y(f"{h1}",title="تعداد شرکتها"), | |
color=alt.value("red"), | |
tooltip=["Content",f"{h1}"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif h=="سه ماه اخیر": | |
h1="Last Three Months" | |
c=alt.Chart(sheet8_1diagram).mark_bar().encode( | |
x=alt.X("Content",sort=None), | |
y=alt.Y(f"{h1}",title="تعداد شرکتها"), | |
color=alt.value("red"), | |
tooltip=["Content",f"{h1}"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
else: | |
h1="Overal" | |
c=alt.Chart(sheet8_1diagram).mark_bar().encode( | |
x=alt.X("Content",sort=None), | |
y=alt.Y(f"{h1}",title="تعداد شرکتها"), | |
color=alt.value("red"), | |
tooltip=["Content",f"{h1}"] | |
) | |
st.altair_chart(c.interactive(),use_container_width=True) | |
elif select2==option2_fa[option2.index("Popular Posts Link")]: | |
opi=st.selectbox("انتخاب فرم پست",["همه نوع","عکس","ویدیو"]) | |
typee=["all_posts_type","image","video"] | |
time=["last_month","last_three_months","overal"] | |
me=["like","comment","view","feed-back"] | |
me0=["like","comment","feed-back"] | |
if opi=="همه نوع": | |
kin="all_posts_type" | |
opt=st.selectbox("شاخص محبوبیت",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"]) | |
fg=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
time_hor=time[["یک ماه اخیر","سه ماه اخیر","کل"].index(fg)] | |
meter=me[["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"].index(opt)] | |
if meter!="view": | |
df=pd.DataFrame(data={ | |
"شرکت":international_company_name_fa, | |
"رتبه نخست": [f'1=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2], | |
"رتبه دوم":[f'2=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2], | |
"رتبه سوم":[f'3=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.header("برای مشاهده پستها بر روی اعداد کلیک کنید") | |
st.write(df,unsafe_allow_html=True) | |
else: | |
df=pd.DataFrame(data={ | |
"شرکت":international_company_name_fa, | |
"رتبه نخست": [f'1=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][1]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][1]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2], | |
"رتبه دوم":[f'2=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][2]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][2]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2], | |
"رتبه سوم":[f'3=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][3]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor]["video"][meter][3]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.header("برای مشاهده پستها بر روی اعداد کلیک کنید") | |
st.write(df,unsafe_allow_html=True) | |
elif opi=="ویدیو" : | |
kin="video" | |
opt=sst.selectbox("شاخص محبوبیت",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"]) | |
fg=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
time_hor=time[["یک ماه اخیر","سه ماه اخیر","کل"].index(fg)] | |
meter=me[["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"].index(opt)] | |
df=pd.DataFrame(data={ | |
"شرکت":international_company_name_fa, | |
"رتبه نخست": [f'1=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2], | |
"رتبه دوم":[f'2=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2], | |
"رتبه سوم":[f'3=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.write(df,unsafe_allow_html=True) | |
else: | |
kin="image" | |
opt=st.selectbox("شاخص محبوبیت",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"]) | |
fg=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"]) | |
time_hor=time[["یک ماه اخیر","سه ماه اخیر","کل"].index(fg)] | |
meter=me[["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","میزان کل مشارکت مخاطبان"].index(opt)] | |
df=pd.DataFrame(data={ | |
"شرکت":international_company_name_fa, | |
"رتبه نخست": [f'1=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][1]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2], | |
"رتبه دوم":[f'2=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][2]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2], | |
"رتبه سوم":[f'3=https://www.instagram.com/p/{data["information"][i]["posts-data"][data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["time_stamp"]]["shortcode"]}/' if data["information"][i]["analysis"]["populars"][time_hor][kin][meter][3]["count"]!=0 else "پستی موجود نیست" for i in international_company_name2] | |
}) | |
for i in ["رتبه نخست","رتبه دوم","رتبه سوم"]: | |
df[i]=df[i].apply(make_clickable) | |
df=df.to_html(escape=False) | |
st.header("برای مشاهده پستها بر روی اعداد کلیک کنید") | |
st.write(df,unsafe_allow_html=True) | |
elif select2==option2_fa[option2.index("Form of Posts")]: | |
AgGrid(sheet_1data,theme="streamlit") | |
f=st.checkbox("مشاهده تحلیل آماری") | |
if f: | |
st_profile_report(sheet_1data.profile_report()) | |
else: | |
h=st.selectbox("Choose the Column",sheet_1data.columns.values.tolist()[1:]) | |
st.subheader("Bar Chart") | |
c=alt.Chart(sheet_1data).mark_bar().encode( | |
x=alt.X("Company",sort=None), | |
y=alt.Y(h), | |
color=alt.value("red"), | |
tooltip=["Company",h] | |
).properties(title=f"Bar Chart {h}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
st.subheader("Histogram") | |
hist_data = pd.DataFrame(tuple(sheet_1data[h]) , columns=["x"]) | |
def altair_histogram(a=22): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title=h), y=alt.Y("count()",title="Number of Posts")) | |
.add_selection(brushed).properties(title=f"Histogram of {h}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=22)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) | |
elif select2==option2_fa[option2.index("Interaction Analysis")]: | |
jk=[sheet3like_1,sheet3comment_1,sheet3view_1,sheet3participation_1,sheet3image_1,sheet3postperday_1] | |
df=pd.DataFrame(data={ | |
"شرکت":international_company_name_fa , | |
"تعداد دنبال کنندگان":sheet2bar_1["Followers"], | |
" میانگین نرخ پسندیده شدن (لایک) در یک ماه اخیر":[jk[0][0][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
" میانگین نرخ پسندیده شدن (لایک) در سه ماه اخیر":[jk[0][1][i]/sheet2bar_1["Followers"][i] for i in range(12)], | |
" میانگین نرخ پسندیده شدن (لایک) در کل": [jk[0][2][i]/sheet2bar_1["Followers"][i] for i in range(12)], | |
" میانگین نرخ نظرات (کامنت) در یک ماه اخیر": [jk[1][0][i]/sheet2bar_1["Followers"][i] for i in range(12)], | |
" میانگین نرخ نظرات (کامنت) در سه ماه اخیر":[jk[1][1][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
" میانگین نرخ نظرات (کامنت) در کل":[jk[1][2][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
" میانگین نرخ بازدید (ویوو) در یک ماه اخیر":[jk[2][0][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
" میانگین نرخ نظرات (کامنت) در سه ماه اخیر":[jk[2][1][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
" میانگین نرخ نظرات (کامنت) در کل ":[jk[2][2][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
" میانگین نرخ مشارکت در یک ماه اخیر":[jk[3][0][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
" میانگین نرخ مشارکت در سه ماه اخیر":[jk[3][1][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
" میانگین نرخ مشارکت در کل":[jk[3][2][i]/sheet2bar_1["Followers"][i] for i in range(12)] , | |
"٪ تصاوری در یک ماه اخیر":jk[4][0] , | |
"٪ تصاوری در سه ماه اخیر":jk[4][1] , | |
"٪ تصاوری در یک ماه کل":jk[4][2] , | |
"میانگین تعداد پست بارگذاری شده در یک روز در یک ماه اخیر":jk[5][0] , | |
"میانگین تعداد پست بارگذاری شده در یک روز در سه ماه اخیر":jk[5][1] , | |
"میانگین تعداد پست بارگذاری شده در یک روز در کل":jk[5][2] , | |
}) | |
AgGrid(df,theme="streamlit") | |
vari=[[' میانگین نرخ پسندیده شدن (لایک) در یک ماه اخیر', ' میانگین نرخ پسندیده شدن (لایک) در سه ماه اخیر', ' میانگین نرخ پسندیده شدن (لایک) در کل'], [' میانگین نرخ نظرات (کامنت) در یک ماه اخیر', ' میانگین نرخ نظرات (کامنت) در سه ماه اخیر', ' میانگین نرخ نظرات (کامنت) در کل'], [' میانگین نرخ بازدید (ویوو) در یک ماه اخیر', ' میانگین نرخ نظرات (کامنت) در سه ماه اخیر', ' میانگین نرخ نظرات (کامنت) در کل '], [' میانگین نرخ مشارکت در یک ماه اخیر', ' میانگین نرخ مشارکت در سه ماه اخیر', ' میانگین نرخ مشارکت در کل'], ['٪ تصاوری در یک ماه اخیر', '٪ تصاوری در سه ماه اخیر', '٪ تصاوری در یک ماه کل'], ['میانگین تعداد پست بارگذاری شده در یک روز در یک ماه اخیر', 'میانگین تعداد پست بارگذاری شده در یک روز در سه ماه اخیر', 'میانگین تعداد پست بارگذاری شده در یک روز در کل']] | |
st.subheader("نمودار خطی چند متغییره") | |
fg=st.multiselect("متغییر ها را انتخاب کنید",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","مشارکت"],["پسندیده شدن (لایک)","نظرات (کامنت)"],key=35) | |
tiem=st.selectbox("انتخاب افق زمانی",["یک ماه اخیر","سه ماه اخیر","کل"],key=36) | |
r=["یک ماه اخیر","سه ماه اخیر","کل"].index(tiem) | |
lenfg=len(fg) | |
posttime=pd.DataFrame(data={ | |
"Company":international_company_name_fa | |
} | |
) | |
for i in fg: | |
ind=["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","مشارکت"].index(i) | |
posttime[f"{i}"]=df[vari[ind][r]] | |
c=alt.Chart(posttime.melt("Company",var_name="Variables",value_name="Rate")).mark_line().encode( | |
x=alt.X("Company:N",sort=None,title="شرکت"), | |
y=alt.Y("Rate:Q",title=f"نرخ میانگین"), | |
color=alt.Color("Variables:N"), | |
tooltip=["Company","Rate"] | |
).properties(title=f"نرخ میانگین در {tiem}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
st.subheader("تحلیل تک متغییره") | |
asd=st.selectbox("متغییر را انتخاب کنید",["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","مشارکت"],key=30) | |
ind=["پسندیده شدن (لایک)","نظرات (کامنت)","بازدید (ویو)","مشارکت"].index(asd) | |
posttime=pd.DataFrame(data={ | |
"Company":international_company_name_fa, | |
"Last Month": df[vari[ind][0]], | |
"Last Three Months": df[vari[ind][1]], | |
"Overal":df[vari[ind][2]] | |
} | |
) | |
st.subheader("نمودار خطی") | |
c=alt.Chart(posttime.melt("Company",var_name="Time Horizon",value_name="Rate")).mark_line().encode( | |
x=alt.X("Company:N",sort=None,title="شرکت"), | |
y=alt.Y("Rate:Q",title=f"نرخ {asd}"), | |
color=alt.Color("Time Horizon:N"), | |
tooltip=["Company","Rate"] | |
).properties(title=f"نرخ میانگین {asd} تغییرات") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
asdo=st.selectbox(" انتخاب افق زمانی برای نمودار میلهای و هیستوگرام",["یک ماه اخیر","سه ماه اخیر","کل"],key=391) | |
indp=["یک ماه اخیر","سه ماه اخیر","کل"].index(asdo) | |
asdo1=["Last Month","Last Three Months","Overal"][indp] | |
st.subheader("نمودار میلهای") | |
c=alt.Chart(posttime).mark_bar().encode( | |
x=alt.X("Company",sort=None,title="شرکت"), | |
y=alt.Y(asdo1,title=f"نرخ",sort="-x"), | |
color=alt.value("red"), | |
tooltip=["Company",asdo1] | |
).properties(title=f" نمودار میلهای نرخ {asd} در {asdo}") | |
st.altair_chart(c.interactive(),use_container_width=True) | |
st.subheader("هیستوگرام") | |
hist_data = pd.DataFrame(tuple(posttime[asdo1]) , columns=["x"]) | |
def altair_histogram(a=872+indp): | |
brushed = alt.selection_interval(encodings=["x"], name="brushed") | |
return ( | |
alt.Chart(hist_data) | |
.mark_bar() | |
.encode(alt.X("x:Q", bin=True,title=f"نرخ"), y=alt.Y("count()",title="فرکانس")) | |
.add_selection(brushed).properties(title=f"هیستوگرام نرخ {asd}در {asdo}") | |
) | |
event_dict = altair_component(altair_chart=altair_histogram(a=872+indp)) | |
r = event_dict.get("x") | |
if r: | |
filtered = hist_data[(hist_data.x >= r[0]) & (hist_data.x < r[1])] | |
st.write(filtered) |