jarajpu commited on
Commit
d509bf8
·
1 Parent(s): 645bbe6

updated leaderboard

Browse files
Files changed (3) hide show
  1. app.py +39 -6
  2. leaders/users.json +9 -9
  3. users.json +9 -9
app.py CHANGED
@@ -271,19 +271,52 @@ def display_leaderboard():
271
  if st.button("Show Leaderboard"):
272
  try:
273
  users = load_users(USERS_JSON)
274
- leaderboard = sorted(users.items(), key=lambda x: x[1], reverse=True)
 
 
 
 
275
 
276
- # Generate a list of dictionaries, each representing a row in the leaderboard
277
- leaderboard_dicts = [{"Rank": rank+1, "User": user[0], "Points": user[1]}
278
- for rank, user in enumerate(leaderboard)]
279
 
280
- # Convert the list of dictionaries to a DataFrame
281
- df_leaderboard = pd.DataFrame(leaderboard_dicts)
282
 
283
  st.dataframe(df_leaderboard, hide_index=True)
284
  except FileNotFoundError:
285
  st.write("Leaderboard data not available.")
286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
 
288
  # Streamlit UI
289
  encoded_image = get_base64_of_image(image_path)
 
271
  if st.button("Show Leaderboard"):
272
  try:
273
  users = load_users(USERS_JSON)
274
+ # Convert the dataset to a pandas DataFrame
275
+ df_users = pd.DataFrame([{'user_name': key, 'points': value} for key, value in users.items()])
276
+
277
+ # Sort DataFrame by points in descending order
278
+ leaderboard = df_users.sort_values(by='points', ascending=False).reset_index(drop=True)
279
 
280
+ # Add a 'Rank' column starting from 1
281
+ leaderboard['Rank'] = leaderboard.index + 1
 
282
 
283
+ # Reorder DataFrame columns so 'Rank' is first
284
+ df_leaderboard = leaderboard[['Rank', 'User', 'Points']]
285
 
286
  st.dataframe(df_leaderboard, hide_index=True)
287
  except FileNotFoundError:
288
  st.write("Leaderboard data not available.")
289
 
290
+ # def display_leaderboard():
291
+ # if st.button("Show Leaderboard"):
292
+ # try:
293
+ # # Load the 'leaders' configuration or split from your dataset
294
+ # dataset = load_dataset("Jay-Rajput/DIS_IPL_Dataset", "leaders", split='train')
295
+ # # Convert the dataset to a pandas DataFrame
296
+ # df_users = pd.DataFrame(dataset)
297
+
298
+ # # Transform the DataFrame to have 'user_name' and 'points' columns
299
+ # # Since your JSON structure is quite unique, this step may need adjustment based on how the DataFrame is loaded
300
+ # users_data = []
301
+ # for column in df_users.columns:
302
+ # points = df_users[column].iloc[0] # Assuming the first (and only) row contains the points for each user
303
+ # users_data.append({'user_name': column, 'points': points})
304
+
305
+ # df_leaderboard = pd.DataFrame(users_data)
306
+
307
+ # # Sort DataFrame by points in descending order
308
+ # df_leaderboard = df_leaderboard.sort_values(by='points', ascending=False)
309
+
310
+ # # Add a 'Rank' column starting from 1
311
+ # df_leaderboard['Rank'] = range(1, len(df_leaderboard) + 1)
312
+
313
+ # # Select and order the columns for display
314
+ # df_leaderboard = df_leaderboard[['Rank', 'User', 'Points']]
315
+
316
+ # st.dataframe(df_leaderboard, hide_index=True)
317
+ # except Exception as e:
318
+ # st.write("Failed to load leaderboard data: ", str(e))
319
+
320
 
321
  # Streamlit UI
322
  encoded_image = get_base64_of_image(image_path)
leaders/users.json CHANGED
@@ -1,17 +1,17 @@
1
  {
2
  "Arpit": 11300,
3
- "Ganesh": 5750,
4
  "Haaris": 8600,
5
  "Jay": 8100,
6
- "Kishore": 7200,
7
- "Megha": 7800,
8
- "Naveein": 7800,
9
  "Neha": 5600,
10
  "Praveen": 11800,
11
- "Rakesh": 6500,
12
  "Sai": 4720,
13
- "Sahil": 8350,
14
- "Sunil": 6401,
15
- "Vaibhav": 5600,
16
- "Vinay": 6500
17
  }
 
1
  {
2
  "Arpit": 11300,
3
+ "Ganesh": 7050,
4
  "Haaris": 8600,
5
  "Jay": 8100,
6
+ "Kishore": 8700,
7
+ "Megha": 9050,
8
+ "Naveein": 9800,
9
  "Neha": 5600,
10
  "Praveen": 11800,
11
+ "Rakesh": 8500,
12
  "Sai": 4720,
13
+ "Sahil": 9850,
14
+ "Sunil": 5301,
15
+ "Vaibhav": 6900,
16
+ "Vinay": 7750
17
  }
users.json CHANGED
@@ -1,17 +1,17 @@
1
  {
2
  "Arpit": 11300,
3
- "Ganesh": 5750,
4
  "Haaris": 8600,
5
  "Jay": 8100,
6
- "Kishore": 7200,
7
- "Megha": 7800,
8
- "Naveein": 7800,
9
  "Neha": 5600,
10
  "Praveen": 11800,
11
- "Rakesh": 6500,
12
  "Sai": 4720,
13
- "Sahil": 8350,
14
- "Sunil": 6401,
15
- "Vaibhav": 5600,
16
- "Vinay": 6500
17
  }
 
1
  {
2
  "Arpit": 11300,
3
+ "Ganesh": 7050,
4
  "Haaris": 8600,
5
  "Jay": 8100,
6
+ "Kishore": 8700,
7
+ "Megha": 9050,
8
+ "Naveein": 9800,
9
  "Neha": 5600,
10
  "Praveen": 11800,
11
+ "Rakesh": 8500,
12
  "Sai": 4720,
13
+ "Sahil": 9850,
14
+ "Sunil": 5301,
15
+ "Vaibhav": 6900,
16
+ "Vinay": 7750
17
  }