【发布时间】:2019-12-27 08:01:50
【问题描述】:
到目前为止,我对标题中描述的任务的方法非常简单,但它似乎有些低效/unpythonic。我通常做的一个例子如下:
原来的 Pandas DataFramedf 有 6 列:'open', 'high', 'low', 'close', 'volume', 'new dt'
import pandas as pd
df_gb = df.groupby('new dt')
arr_high = df_gb['high'].max()
arr_low = df_gb['low'].min()
arr_open = df_gb['open'].first()
arr_close = df_gb['close'].last()
arr_volumne = df_gb['volume'].sum()
df2 = pd.concat([arr_open,
arr_high,
arr_low,
arr_close,
arr_volumne], axis = 'columns')
乍一看似乎已经很高效,但是当我有 20 个函数等待应用到 20 个不同的列时,它很快就会变得不合 Python/低效。
有什么方法可以让它更高效/pythonic?提前谢谢你
【问题讨论】:
标签: python pandas performance aggregate pandas-groupby