Python 如何使用pandas为数据帧创建函数

Python 如何使用pandas为数据帧创建函数,python,pandas,function,Python,Pandas,Function,我有这个客户购买的数据框架,我想创建一个函数,该函数为我提供给定输入月份和年份的总购买量 我有一个有很多列的数据框(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 = [] i

我有这个客户购买的数据框架,我想创建一个函数,该函数为我提供给定输入月份和年份的总购买量

我有一个有很多列的数据框(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

很接近了,需要放弃IF语句和For循环

此外,在处理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()
设置 测验
很接近了,需要放弃IF语句和For循环

此外,在处理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()
设置 测验
谢谢你的回答!但是我的返回0,idk为什么。。。。我的数据类型与您的数据类型相同。您是在上面的示例中还是在您自己的数据帧上返回0?如果您有字符串,请检查它们。答案可能在@ViniciusGushikenThanks的空白处!但是我的返回0,idk为什么。。。。我的数据类型与您的数据类型相同。您是在上面的示例中还是在您自己的数据帧上返回0?如果你有字符串,检查它们可能有空白@ViniciusGushiken
total_purchases(df_p)

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

500