Я пытаюсь отфильтровать объект DataFrameGroupBy с помощью закрытой функции, которая принимает два параметра, DataFrame и год. Фактический код длинный, поэтому я написал псевдокод, который показывает проблему:
import pandas as pd
data = pd.read_csv("path", index_col = index)
def _function(df, year):
print(year)
data_grouped = data.groupby(index)
data_filters = data_grouped.filter(_function, year)
Я получаю ошибку:
TypeError: _function() takes exactly 2 arguments (1 given)
Отладка показывает, что он передает параметр args в качестве ключевого аргумента dropna, если я добавлю dropna так, что:
data_filtered = data_grouped.filter(_function, dropna=True, year)
Я получаю:
SyntaxError: non-keyword arg after keyword arg
Если я поставлю это после:
data_filtered = data_grouped.filter(_function, year, dropna=True)
Я получаю:
TypeError: filter() got multiple values for keyword argument 'dropna'
Как я должен делать это правильно?