Не могу найти проблему с тем, как я использую Group by и agg - PullRequest
0 голосов
/ 27 мая 2020

У нас есть задача отжиманий, когда каждый вводит свои данные о количестве выполненных отжиманий в форме Google, я пытаюсь отправить им по электронной почте данные, которые я получил от них, вот как я это реализовал. Но я считаю, что это неправильный способ. Я очень новичок в программировании, поэтому, пожалуйста, извините меня

participantsData = pushupCountXLS.groupby(['Email', 'Name', 'Date'], as_index=False ).agg(sum)
uniqueEmailAdd = participantsXLS['Email Address'].unique()
for em in uniqueEmailAdd:
    if check_valid_email(str(em)):
        temp = participantsData[participantsData['Email'].eq(em)]
        temp = temp.astype({'Regular':int, 'Easy':int, 'Special':int})
        uniqunames=(temp['Name'].unique())
        strtemp2=""
        for participant in uniqunames:
            #strtemp2 = temp[['Date', 'Regular', 'Easy', 'Special']].to_string(index=False)
            temp2 = temp[temp['Name'].eq(participant)]
            strtemp2 = str(participant) + '\n'
            strtemp2 += temp2[['Date', 'Regular', 'Easy', 'Special']].to_string(index=False)
        emailcounter += 1
        print(emailcounter)
        send_email(em, strtemp2)

У меня есть таблица в Excel ParticipantData.xlsx

email      Name     Date        RegPushupCount    EasyPushupCount    DifficultPushupCount
a@b.com    John     2020-05-01         5                  0                   0
a@b.com    John     2020-05-01         5                  0                   0
a@b.com    John     2020-05-02         0                  5                   0
a@b.com    Jane     2020-05-02         5                  0                   0
a@b.com    Jane     2020-05-01         0                  0                   5
b@a.com    Bill     2020-05-01         0                  0                   5
b@a.com    Bill     2020-05-02         0                  5                   0

Я хочу отправлять по электронной почте на каждое письмо, краткое изложение того, как они сделали много отжиманий. У меня есть функция send_email (email_address, email_text), которая позаботится о части электронной почты.

Я хочу отправить электронное письмо вот так

email to: a@b.com

John               Regular Push ups     Easy Push ups   Difficult Pushups
      2020-05-01          10               0                    0
      2020-05-02          0                5                    0
Jane               Regular Push ups     Easy Push ups   Difficult Pushups
      2020-05-01          5                0                    0
      2020-05-02          0                5                    0
email to: b@a.com

Bill               Regular Push ups     Easy Push ups   Difficult Pushups
      2020-05-01          10               0                    0
      2020-05-02          0                5                    0

Надеюсь, это ясно объясняет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...