Как создать функцию для фрейма данных с pandas - PullRequest
1 голос
/ 09 апреля 2020

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

У меня есть фрейм данных (df) с большим количеством столбцы, но я собираюсь использовать только 3 ("год", "месяц", "значение")

Это то, что я пытаюсь, но не работает:

def total_purchases():
    y = input('Which year do you want to consult?')
    m = int(input('Which month do you want to consult?')
    sum = []
    if df[df['year']== y] & df[df['month']== m]:
       for i in df:
         sum = sum + df[df['value']]
    return sum

1 Ответ

3 голосов
/ 09 апреля 2020

Вы близки, вам нужно исключить оператор IF и For l oop.

дополнительно, при работе с несколькими логическими операторами в pandas вам необходимо использовать скобки для разделения условий ,

def total_purchases(df):
    y = input('Which year do you want to consult? ')
    m = int(input('Which month do you want to consult? '))
    return df[(df['year'].eq(y)) & (df['month'].eq(m))]['value'].sum()

настройка

df_p = pd.DataFrame({'year' : ['2011','2011','2012','2013'],
                  'month' : [1,2,1,2],
                  'value' : [200,500,700,900]})

Тест

total_purchases(df_p)

Which year do you want to consult? 2011
Which month do you want to consult? 2

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