mehdi364 commited on
Commit
c9ec2ca
·
verified ·
1 Parent(s): 2674a1d

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +75 -0
app.py ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import matplotlib.pyplot as plt
4
+ import seaborn as sns
5
+
6
+ # تنظیمات اولیه استریم لیت
7
+ st.set_page_config(page_title="مرکز آموزش", page_icon="🎓", layout="wide")
8
+
9
+ st.title("📊 مرکز آموزش")
10
+ st.write("""
11
+ این برنامه به شما کمک می‌کند تا داده‌های ثبت‌نام هنرجو و کلاس‌های آموزش را تجزیه و تحلیل کرده و داشبوردی برای نمایش آن‌ها ارائه دهید.
12
+ لطفا فایل CSV داده‌های خود را آپلود کنید.
13
+ """)
14
+
15
+ # آپلود فایل CSV
16
+ uploaded_file = st.file_uploader("انتخاب فایل CSV", type=["csv"])
17
+
18
+ if uploaded_file:
19
+ # خواندن داده‌های CSV
20
+ df = pd.read_csv(uploaded_file, delimiter='؛')
21
+
22
+ # تغییر نام ستون‌ها به نام‌های معنی‌دار
23
+ df.rename(columns={
24
+ 'Table1_Cell1': 'تاریخ کلاس',
25
+ 'Table1_Cell2': 'شهریه',
26
+ 'Table1_Cell3': 'تعداد جلسات',
27
+ 'Table1_Cell4': 'استاد',
28
+ 'Table1_Cell5': 'نام کلاس',
29
+ 'Table1_Cell6': 'تحصیلات',
30
+ 'Table1_Cell7': 'جنسیت',
31
+ 'Table1_Cell8': 'کد ملی',
32
+ 'Table1_Cell9': 'نام پدر',
33
+ 'Table1_Cell10': 'نام خانوادگی',
34
+ 'Table1_Cell11': 'نام هنرجو'
35
+ }, inplace=True)
36
+
37
+ # نمایش داده‌ها
38
+ st.subheader("نمایش داده‌ها")
39
+ st.write("پیش‌نمایش داده‌های آپلود شده:")
40
+ st.dataframe(df.head())
41
+
42
+ st.write("نام ستون‌های موجود در فایل:")
43
+ st.write(df.columns)
44
+
45
+ # نمودار تعداد هنرجویان بر اساس نام کلاس
46
+ st.subheader("تعداد هنرجویان بر اساس کلاس")
47
+ student_count_per_class = df.groupby('نام کلاس')['نام هنرجو'].count().reset_index()
48
+ plt.figure(figsize=(10, 6))
49
+ sns.barplot(x='نام کلاس', y='نام هنرجو', data=student_count_per_class)
50
+ plt.xticks(rotation=45)
51
+ plt.title('تعداد هنرجویان بر اساس کلاس')
52
+ plt.xlabel('نام کلاس')
53
+ plt.ylabel('تعداد هنرجویان')
54
+ st.pyplot(plt)
55
+
56
+ # نمودار توزیع جنسیت
57
+ st.subheader("توزیع جنسیت")
58
+ gender_distribution = df['جنسیت'].value_counts().reset_index()
59
+ gender_distribution.columns = ['جنسیت', 'تعداد']
60
+ plt.figure(figsize=(8, 5))
61
+ sns.barplot(x='جنسیت', y='تعداد', data=gender_distribution)
62
+ plt.title('توزیع جنسیت')
63
+ st.pyplot(plt)
64
+
65
+ # نمودار شهریه بر اساس تعداد جلسات
66
+ st.subheader("نمودار شهریه بر اساس تعداد جلسات")
67
+ plt.figure(figsize=(10, 6))
68
+ sns.scatterplot(data=df, x='تعداد جلسات', y='شهریه')
69
+ plt.title('توزیع شهریه بر اساس تعداد جلسات')
70
+ plt.xlabel('تعداد جلسات')
71
+ plt.ylabel('شهریه')
72
+ st.pyplot(plt)
73
+
74
+ else:
75
+ st.info("لطفا یک فایل CSV برای ادامه آپلود کنید.")