# Filter for George Washington High School
gwhs_data = df[df['School Name'] == 'George Washington High School']
# separating the "Totals" row for general overview
gwhs_total = gwhs_data[gwhs_data['Subgroup'] == 'Totals']
# separating subgroups for detailed analysis
gwhs_subgroups = gwhs_data[gwhs_data['Subgroup'] != 'Totals']
# metrics to display
display_cols = ['Group', 'Subgroup', 'Assessment ELA Performance Value', 'Assessment Math Performance Value',
'Grad. Rate 4-Year Value', 'Attendance Value', 'Discipline Value']
print("GWHS Overview (Totals):")
print(gwhs_total[display_cols])
print("\nGWHS Subgroups:")
print(gwhs_subgroups[display_cols])
# Create a comparison with District and State High Schools
# Filter for High Schools in Kanawha and State
# Note: School Type might be 'High' or 'Secondary'. Let's check unique School Types first.
print("\nUnique School Types:", df['School Type'].unique())
# Assuming 'High' or 'Secondary' corresponds to High Schools.
# Let's check what GWHS is classified as.
print("GWHS School Type:", gwhs_total['School Type'].values[0])
Unnamed: 0 Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6 Unnamed: 7 Unnamed: 8 Unnamed: 9 Unnamed: 10 Academic Indicators Unnamed: 12 Unnamed: 13 Unnamed: 14 Unnamed: 15 Unnamed: 16 Unnamed: 17 Unnamed: 18 Unnamed: 19 Unnamed: 20 Unnamed: 21 Student Success Indicators Unnamed: 23 Unnamed: 24 Unnamed: 25
0 Reporting Year District Code District Name School Code School Name School Type Sort School Type Title 1 Indicator Group Subgroup Subgroup_Sort Assessment ELA Performance Value Assessment ELA Proficiency Meets Annual Target? Assessment Math Performance Value Assessment Math Proficiency Meets Annual Target? Assessment ELA Progress Value Assessment Math Progress Value English Learners Value English Learners Meets Annual Target? Grad. Rate 4-Year Value Grad Rate 4-Year Meets Annual Target? Grad. Rate 5-Year Value Attendance Value Discipline Value On Track Value Post Secondary Value
1 2025 002 Barbour 101 Kasson Elementary/Middle School 4 Middle Yes Race/Ethnicity American Indian or Alaska Native 1 Not Reportable Not Reportable Not Reportable Not Reportable Not Reportable Not Reportable NaN NaN NaN NaN NaN Not Reportable Not Reportable NaN NaN
2 2025 002 Barbour 101 Kasson Elementary/Middle School 4 Middle Yes Race/Ethnicity Asian 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 2025 002 Barbour 101 Kasson Elementary/Middle School 4 Middle Yes Race/Ethnicity Black or African American 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 2025 002 Barbour 101 Kasson Elementary/Middle School 4 Middle Yes Race/Ethnicity Hispanic or Latino 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 12209 entries, 0 to 12208
Data columns (total 26 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Unnamed: 0 12209 non-null object
1 Unnamed: 1 12209 non-null object
2 Unnamed: 2 12209 non-null object
3 Unnamed: 3 12209 non-null object
4 Unnamed: 4 12209 non-null object
5 Unnamed: 5 12209 non-null object
6 Unnamed: 6 12209 non-null object
7 Unnamed: 7 12209 non-null object
8 Unnamed: 8 12209 non-null object
9 Unnamed: 9 12209 non-null object
10 Unnamed: 10 12209 non-null object
11 Academic Indicators 7964 non-null object
12 Unnamed: 12 7964 non-null object
13 Unnamed: 13 7964 non-null object
14 Unnamed: 14 7964 non-null object
15 Unnamed: 15 5809 non-null object
16 Unnamed: 16 5814 non-null object
17 Unnamed: 17 2695 non-null object
18 Unnamed: 18 59 non-null object
19 Unnamed: 19 2172 non-null object
20 Unnamed: 20 848 non-null object
21 Unnamed: 21 2164 non-null object
22 Student Success Indicators 9128 non-null object
23 Unnamed: 23 7129 non-null object
24 Unnamed: 24 2130 non-null object
25 Unnamed: 25 2073 non-null object
dtypes: object(26)
memory usage: 2.4+ MB
None
# Reload the dataframe correctly
df = pd.read_csv('WV_Balanced_Scorecard_Data_2025 (1).xlsx - SY25 Balanced Scorecard Results.csv', header=1)
# Filter for George Washington High School
gwhs_data = df[df['School Name'] == 'George Washington High School']
# 1. Overview (Totals)
gwhs_total = gwhs_data[gwhs_data['Subgroup'] == 'Totals']
print("GWHS Totals:")
print(gwhs_total)
# 2. Subgroups
# Filter for interesting subgroups (Student Status, Race/Ethnicity)
gwhs_subgroups = gwhs_data[gwhs_data['Group'].isin(['Race/Ethnicity', 'Student Status'])]
print("\nGWHS Subgroups:")
print(gwhs_subgroups[['Group', 'Subgroup', 'Assessment ELA Performance Value', 'Assessment Math Performance Value', 'Grad. Rate 4-Year Value']])
# 3. Comparison Benchmarks (High Schools)
# Check the School Type of GWHS
gwhs_type = gwhs_total['School Type'].iloc[0]
print(f"\nGWHS School Type: {gwhs_type}")
# Filter for all schools of this type in Kanawha
kanawha_hs = df[(df['District Name'] == 'Kanawha') & (df['School Type'] == gwhs_type) & (df['Subgroup'] == 'Totals')]
# Filter for all schools of this type in State (using State Record if available, or aggregating)
# The dataset has 'State Record' district. Let's see if it has a row for 'Secondary' or 'High' school type totals.
state_hs = df[(df['District Name'] == 'State Record') & (df['School Type'] == gwhs_type) & (df['Subgroup'] == 'Totals')]
# Calculate averages if State Record for this type isn't a single pre-calculated row
# But based on previous turn, State Record had 'Secondary' and 'All Schools'. GWHS is likely 'High', which might map to 'Secondary' in the State Record aggregates or we just take the mean of all High Schools.
# Let's look at the 'State Record' rows again to find the best match.
print("\nState Record Types:")
print(df[df['District Name'] == 'State Record']['School Type'].unique())
# If GWHS is 'High' and State has 'Secondary', we might need to assume Secondary = High + Middle/High or similar.
# Let's just calculate the average of all schools with School Name containing "High" or Type "High" in the State if a direct match isn't found.
# Actually, looking at previous turn output:
# State Agg types: Primary, Elementary, Middle, Secondary, All Schools.
# GWHS type is likely 'High'. 'Secondary' usually covers High Schools. Let's verify if GWHS falls under 'Secondary' sort or if 'High' is the label.
# Previous output said: `4773 Secondary 0.6387`.
# Let's check `School Type` vs `School Type Sort`.
# Let's prepare data for plotting
# We will create a comparison dataframe: GWHS, Kanawha HS Avg, State HS Avg
metrics = ['Assessment ELA Performance Value', 'Assessment Math Performance Value', 'Grad. Rate 4-Year Value', 'Attendance Value']
# Convert to numeric
for m in metrics:
gwhs_total[m] = pd.to_numeric(gwhs_total[m], errors='coerce')
kanawha_hs[m] = pd.to_numeric(kanawha_hs[m], errors='coerce')
# State HS (we will define this after checking the type match)
# Print columns to ensure I have the right ones
print(gwhs_total[metrics])
print("Kanawha HS Stats (Mean):")
print(kanawha_hs[metrics].mean())
GWHS Totals:
Reporting Year District Code District Name School Code School Name School Type Sort School Type Title 1 Indicator Group Subgroup Subgroup_Sort Assessment ELA Performance Value Assessment ELA Proficiency Meets Annual Target? Assessment Math Performance Value Assessment Math Proficiency Meets Annual Target? Assessment ELA Progress Value Assessment Math Progress Value English Learners Value English Learners Meets Annual Target? Grad. Rate 4-Year Value Grad Rate 4-Year Meets Annual Target? Grad. Rate 5-Year Value Attendance Value Discipline Value On Track Value Post Secondary Value
4619 2025 39 Kanawha 506 George Washington High School 5 Secondary No Total Totals 14 0.7487 No 0.5609 No NaN NaN Not Reportable NaN 0.9597 Yes 0.9488 0.0931 NaN 0.8923 0.7914
GWHS Subgroups:
Group Subgroup Assessment ELA Performance Value Assessment Math Performance Value Grad. Rate 4-Year Value
4606 Race/Ethnicity American Indian or Alaska Native NaN NaN NaN
4607 Race/Ethnicity Asian Not Reportable Not Reportable Not Reportable
4608 Race/Ethnicity Black or African American Not Reportable Not Reportable 0.7917
4609 Race/Ethnicity Hispanic or Latino Not Reportable Not Reportable Not Reportable
4610 Race/Ethnicity Multi-Racial Not Reportable Not Reportable Not Reportable
4611 Race/Ethnicity Pacific Islander NaN NaN Not Reportable
4612 Race/Ethnicity White 0.7714 0.5741 0.9797
4613 Student Status Economically Disadvantaged 0.6352 0.4374 0.8989
4614 Student Status Children With Disabilities 0.2957 0.2087 0.8333
4615 Student Status English Learners Not Reportable Not Reportable Not Reportable
4616 Student Status Homeless Not Reportable Not Reportable Not Reportable
4617 Student Status Military Connected NaN NaN NaN
4618 Student Status Foster Care Not Reportable Not Reportable Not Reportable
GWHS School Type: Secondary
State Record Types:
['Primary' 'Elementary' 'Middle' 'Secondary' 'All Schools']
Assessment ELA Performance Value Assessment Math Performance Value Grad. Rate 4-Year Value Attendance Value
4619 0.7487 0.5609 0.9597 0.0931
Kanawha HS Stats (Mean):
Assessment ELA Performance Value 0.634956
Assessment Math Performance Value 0.432944
Grad. Rate 4-Year Value 0.902989
Attendance Value 0.234156
dtype: float64
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Re-establish context variables just in case
# (Assuming previous variables gwhs_total, kanawha_hs are still available, but safe to re-define key values for plotting)
# 1. Prepare Comparison Data
# --------------------------
# State Secondary
state_hs_row = df[(df['District Name'] == 'State Record') & (df['School Type'] == 'Secondary') & (df['Subgroup'] == 'Totals')]
metrics = ['Assessment ELA Performance Value', 'Assessment Math Performance Value', 'Grad. Rate 4-Year Value', 'Attendance Value']
# Construct a clean DataFrame for plotting
comparison_data = []
# GWHS
for m in metrics:
val = pd.to_numeric(gwhs_total[m].iloc[0], errors='coerce')
comparison_data.append({'Entity': 'George Washington HS', 'Metric': m, 'Value': val})
# Kanawha Secondary Avg
kanawha_means = kanawha_hs[metrics].mean()
for m in metrics:
comparison_data.append({'Entity': 'Kanawha Secondary Avg', 'Metric': m, 'Value': kanawha_means[m]})
# State Secondary Avg
for m in metrics:
val = pd.to_numeric(state_hs_row[m].iloc[0], errors='coerce')
comparison_data.append({'Entity': 'State Secondary Avg', 'Metric': m, 'Value': val})
comp_df = pd.DataFrame(comparison_data)
# Rename Metrics for cleaner labels
metric_map = {
'Assessment ELA Performance Value': 'ELA Proficiency',
'Assessment Math Performance Value': 'Math Proficiency',
'Grad. Rate 4-Year Value': '4-Year Grad Rate',
'Attendance Value': 'Chronic Absenteeism' # Interpreted based on logic
}
comp_df['Metric'] = comp_df['Metric'].map(metric_map)
# Plot 1: Benchmarking
fig, ax = plt.subplots(figsize=(10, 6))
sns.barplot(data=comp_df, x='Metric', y='Value', hue='Entity', palette='muted', ax=ax)
ax.set_title('George Washington HS Performance vs Benchmarks (2025)')
ax.set_ylabel('Rate (0-1)')
ax.set_ylim(0, 1.1)
for container in ax.containers:
ax.bar_label(container, fmt='%.2f')
plt.tight_layout()
plt.savefig('gwhs_benchmark.png')
# 2. Subgroup Analysis
# --------------------
# We extracted gwhs_subgroups earlier.
# Rows of interest: White, Black or African American, Economically Disadvantaged, Children With Disabilities
# Metrics: ELA, Math, Grad Rate
subgroups_of_interest = ['White', 'Black or African American', 'Economically Disadvantaged', 'Children With Disabilities']
sub_df = gwhs_subgroups[gwhs_subgroups['Subgroup'].isin(subgroups_of_interest)].copy()
# Melt for plotting
sub_metrics = ['Assessment ELA Performance Value', 'Assessment Math Performance Value', 'Grad. Rate 4-Year Value']
for m in sub_metrics:
sub_df[m] = pd.to_numeric(sub_df[m], errors='coerce')
sub_melted = sub_df.melt(id_vars='Subgroup', value_vars=sub_metrics, var_name='Metric', value_name='Value')
sub_melted['Metric'] = sub_melted['Metric'].map(metric_map)
# Plot 2: Subgroups
fig2, ax2 = plt.subplots(figsize=(10, 6))
sns.barplot(data=sub_melted, x='Metric', y='Value', hue='Subgroup', palette='Set2', ax=ax2)
ax2.set_title('GWHS Subgroup Performance Gaps')
ax2.set_ylabel('Rate')
ax2.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
for container in ax2.containers:
ax2.bar_label(container, fmt='%.2f')
plt.tight_layout()
plt.savefig('gwhs_subgroups.png')
George Washington High School Analysis
George Washington High School (GWHS) stands out as a top-performing school within Kanawha County, significantly outperforming both the district and state averages across most key academic and success indicators for the 2025 reporting year.
1. Performance vs. Benchmarks
The chart below illustrates how GWHS compares to the average for secondary schools in Kanawha County and the State of West Virginia.
Academic Excellence:
ELA Proficiency: GWHS achieved 74.9%, well above the Kanawha secondary average (~63.5%) and the State secondary average (~58.7%).
Math Proficiency: At 56.1%, GWHS leads the district average (43.3%) and the state (44.5%).
Student Success:
Graduation Rate: The 4-year graduation rate is exceptional at 96.0%, compared to the district's 90.3% and the state's 92.8%.
Chronic Absenteeism: GWHS reports a rate of 9.3%, which is notably better (lower) than the district average of ~23.4%. This indicates strong student engagement and attendance.
2. Subgroup Performance Gaps
Despite the high overall performance, an analysis of student subgroups reveals achievement gaps that mirror broader trends.
Race/Ethnicity:
Graduation Rate: While White students have a graduation rate of 98.0%, Black or African American students graduate at a rate of 79.2%, highlighting a significant gap. (Note: Academic proficiency data for Black students was redacted/not reportable in this dataset, likely due to small sample size).
Socioeconomic Status:
Economically Disadvantaged students score lower than the school average, with 63.5% in ELA and 43.7% in Math. However, these scores are still often higher than the general district averages for all students, suggesting GWHS supports these students relatively well compared to other schools.
Students with Disabilities:
This group faces the most significant challenges, with proficiency rates of 29.6% in ELA and 20.9% in Math.
Summary
George Washington High School is a flagship institution for Kanawha County, demonstrating high academic standards and strong graduation outcomes. However, the data highlights opportunities for targeted support to close the graduation gap for Black students and improve academic proficiency for students with disabilities.
No comments:
Post a Comment