在函数调用中重命名 Pandas .agg() 列

Rename Pandas .agg() columns inside function call

有没有办法在 .agg() 函数中 执行以下操作?

hl = df[["sym", "bid", "ask"]].groupby("sym").agg(["min", "max"])
hl = hl.rename(columns={"min": "low", "max": "high"})

我从 pandas documentation 中看到您可以使用 pd.namedAgg 将不同的聚合应用于不同的列,但我想做的就是重命名原始 .agg()呼唤。

我习惯于使用非常简洁的语言 (kdb+/q) 编写代码,因此想减少代码行数。

这个呢?

import pandas as pd
from random import randint

# Create sample dataframe
df = pd.DataFrame([
    {'sym': randint(1, 10), 'bid': randint(1, 10), 'ask': randint(1, 10)} for _ in range(10)
     ]).sort_values('sym').reset_index(drop=True)

hl = df[["sym", "bid", "ask"]].groupby("sym").agg([('low', "min"), ('high', "max")])
Before agg. After agg.