首页 > 解决方案 > 为什么 Series 的 group 和 aggregate 比单列 DataFrame 更快?

问题描述

当在 pandas.Series 上调用 group by 和 aggregate 时,它​​比使用一列(它是 pandas.Series 实例)调用 pandas.DataFrame 更快。下面是一个例子:

import random
import pandas as pd
import time

column1 = [random.randint(1,3) for i in range(1000)]
column2 = [random.random() for i in range(1000)]


df = pd.DataFrame(zip(column1, column2), columns=["group", "number"])

t1 = time.time()
grouped_1 = df.groupby("group").sum()
t2 = time.time()

print(t2-t1)


t1 = time.time()
grouped_2 = df.groupby("group")["number"].sum()
t2 = time.time()

print(t2-t1)

print("First type %s" %type(grouped_1))
print("Second type %s" %type(grouped_2))

输出 =

0.0062596797943115234
0.0024614334106445312
First type <class 'pandas.core.frame.DataFrame'>
Second type <class 'pandas.core.series.Series'>

用一列与一系列聚合数据框的瓶颈是什么?

标签: pythonpandasdataframe

解决方案


推荐阅读