我正在尝试使用带有两个参数(DataFrame和年份)的私有函数来过滤DataFrameGroupBy对象。实际代码很长,所以我写了伪代码来显示问题:
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)
调试显示,如果我将dropna放在这样的情况下,它将args参数作为关键字参数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'
我该如何正确地做到这一点?