TypeError: 'Series' 对象不能使用带有自定义函数的 pandas apply()

绑定使用 Pandas 数据框 Apply() 函数来更新具有函数的所有行。结果是一个类型错误


----> 1 df_usnews['AvgMathSAT_IQR'].apply(interquartile(df_usnews))


/anaconda/lib/python3.5/site-packages/pandas/core/series.py in apply(self, func, convert_dtype, args, **kwds)

   2235             values = lib.map_infer(values, boxer)

   2236 

-> 2237         mapped = lib.map_infer(values, f, convert=convert_dtype)

   2238         if len(mapped) and isinstance(mapped[0], Series):

   2239             from pandas.core.frame import DataFrame


pandas/src/inference.pyx in pandas.lib.map_infer (pandas/lib.c:63043)()


TypeError: 'Series' object is not callable


def interquartile(df):

        return pd.to_numeric(df.ThirdQuartileMathSAT) - pd.to_numeric(df.FirstQuartileMathSAT)



q75_upper = np.percentile(df_usnews.AvgMathSAT, q=75, interpolation='higher', axis=0)

q25_lower = np.percentile(df_usnews.AvgMathSAT, q=25, interpolation='lower', axis=0)

interquartile = q75_upper - q25_lower

df_usnews['AvgMathSAT_IQR'] = 0

df_usnews['AvgMathSAT_IQR'].apply(interquartile(df_usnews))


拉风的咖菲猫
浏览 991回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python