在函数调用中重命名 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.
有没有办法在 .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. |
---|---|