<reponame>carlosmarca/polls-trump-covid
import matplotlib.pyplot as plt


def create_approval_bar(approval_polls):
    """
    Diagrama de barras según partido político ("party") y número de personas que apruban o desaprueban
    las preguntas que contienen coronavirus o Trump.
    :return: dataframe
    """
    # Filtrar las preguntas que incluyan Trump y coronavirus
    approval_polls = approval_polls[approval_polls["text"].
                                    str.contains(r"Trump.*coronavirus|coronavirus.*Trump", na = False, regex = True)]
    # Agrupar por partidos (party) y sumar las personas que aprueban y desaprueban
    approval_polls = approval_polls.groupby(["party"])[["approve", "disapprove"]].apply(sum)
    # Redondeamos el resultado por tratarse de personas deben ser número enteros
    approval_polls["approve"] = round(approval_polls["approve"])
    approval_polls["disapprove"] = round(approval_polls["disapprove"])
    # Gráfica
    approval_polls.plot.bar(rot=0)
    name = "images/approval_polls"
    plt.savefig(name)
    plt.close()
    return approval_polls
