【发布时间】:2020-12-12 05:28:51
【问题描述】:
假设我有一个股票价格的数据框,其中“开盘”列是第 0 列,“收盘”列是第 3 列。进一步假设我想找到收盘价和开盘价之间的最大差异。无需使用agg 方法即可轻松完成,但让我来说明一下使用它们时的错误。
def daily_value(df):
df.iloc[:, 0] = df.iloc[:,3] - df.iloc[:, 0]
return df.max()
def daily_value(df):
df['Open'] = df['Close'] - df['Open']
return df.max()
两者都用于替换第 0 列,即“打开”,并返回打开和关闭之间的最大差值。
当我有 df1 并输入 daily_value(df1) 时,这工作正常。
但是,当我尝试df1.agg(daily_value) 时,两个版本都失败了。第一个说IndexingError: Too many indexers,而后者说KeyError: Close。
如果我确实需要将函数传递给 *.agg 方法,我该怎么做?
非常感谢!
【问题讨论】:
标签: pandas datetime time-series