I have a data frame that contains survey responses by country.
country=['Country A','Country A','Country A','Country B','Country B','Country B']
responses=['Agree','Neutral','Disagree','Agree','Neutral','Disagree']
num_respondents=[10,50,30,58,24,23]
example_df = pd.DataFrame({"Country": country, "Response": responses, "Count": num_respondents})
For each country, I want to compute the fraction (#Agree-#Disagree)/(Total Respondents). Is there a clean way to do this using groupby or another pandas function?
>Solution :
Maybe it helps:
example_df.groupby('Country').apply(lambda x: (sum(x['Count'][x['Response'] == 'Agree'])
- sum(x['Count'][x['Response'] == 'Disagree']))
/sum(x['Count']))