Если вы хотите сделать это только по городу:
df.groupby(by='City').median()
Если вы хотите сгруппировать по городу и работе:
df.groupby(by=['City', 'Job']).median()
Уровень безработицы в каждом городе:
import pandas as pd
df = pd.DataFrame({
'User': ['A', 'B', 'C', 'D', 'E', 'F'], 'City': ['x', 'x', 'x', 'y', 'y', 'y'],
'Job': ['Unemployed', 'Student', 'Unemployed', 'Data Scientist', 'Unemployed', 'Student'],
'Age':[33, 18, 27, 28, 45, 18],
})
df['count'] = 1
unmpl = df.groupby(by=['City', 'Job'])['count'].sum().reset_index()
unmpl_by_city = unmpl[unmpl['Job'] == 'Unemployed'].reset_index(drop=True)
count_by_city = df.groupby(by=['City'])['count'].sum().reset_index(drop=True)
frac_by_city = (unmpl_by_city['count'] * 100.0 /
count_by_city)
unmpl_by_city['frac'] = frac_by_city
unmpl_by_city