Pandas 的 groupby
方法允许你根据一个或多个键(列)对数据进行分组,然后对每个组应用聚合函数。当你需要基于两列进行分组时,可以将这两列作为列表传递给 groupby
方法。
假设我们有一个 DataFrame,包含销售数据,列有 Product
, Region
, 和 Sales
。
import pandas as pd
data = {
'Product': ['A', 'A', 'B', 'B', 'A', 'B'],
'Region': ['North', 'South', 'North', 'South', 'North', 'South'],
'Sales': [100, 200, 150, 250, 300, 350]
}
df = pd.DataFrame(data)
# 基于 Product 和 Region 两列进行分组,并计算每组的 Sales 总和
grouped = df.groupby(['Product', 'Region'])['Sales'].sum().reset_index()
print(grouped)
问题:分组后数据量过大,导致内存不足。 原因:当处理非常大的数据集时,所有分组数据可能无法一次性加载到内存中。 解决方法:
pandas.read_csv
的分块功能来逐块读取和处理数据。示例代码(使用 Dask):
import dask.dataframe as dd
ddf = dd.from_pandas(df, npartitions=2) # 将 DataFrame 分成两部分进行处理
grouped_ddf = ddf.groupby(['Product', 'Region'])['Sales'].sum().compute()
print(grouped_ddf)
通过这种方式,可以有效处理超出单机内存限制的大规模数据集。
总之,Pandas 的 groupby
功能在数据分析中非常强大且灵活,尤其适合处理复杂的分组需求。在实际应用中,根据数据规模和性能要求选择合适的处理策略至关重要。
领取专属 10元无门槛券
手把手带您无忧上云