You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas按日期、产品、类型分组DataFrame并生成新子DataFrame?

按多条件分组并生成独立DataFrame的Pandas实现方法

核心结论

groupby完全是实现该需求的最优方案,它可以直接按你指定的日期、产品、交易类型三个字段对DataFrame进行分组,并且能轻松提取每个分组对应的独立DataFrame。

具体实现代码

1. 构造原始DataFrame

先把你提供的原始数据转换成Pandas DataFrame:

import pandas as pd

data = {
    'ID': [1, 2, 3, 4, 5, 6, 7, 8],
    'Date': ['1/1/2023', '1/1/2023', '1/1/2023', '1/1/2023',
             '1/2/2023', '1/2/2023', '1/3/2023', '1/3/2023'],
    'Product': ['Bike', 'Bike', 'Bike', 'Bike', 'Car', 'Car', 'Truck', 'Truck'],
    'Type': ['Buy', 'Buy', 'Sell', 'Sell', 'Sell', 'Sell', 'Buy', 'Buy'],
    'Cost': [10.00, 10.00, 10.00, 10.00, 20.00, 20.00, 30.00, 30.00],
    'Quantity': [1, 1, 1, 1, 1, 1, 1, 1]
}

df = pd.DataFrame(data)

2. 分组并提取独立DataFrame

使用groupby按三个字段分组,然后遍历分组得到每个独立的DataFrame:

# 按Date、Product、Type三个字段分组
grouped = df.groupby(['Date', 'Product', 'Type'])

# 方式1:将分组存入列表,方便批量处理
grouped_dfs = []
for group_key, group_df in grouped:
    grouped_dfs.append(group_df)
    # 打印分组信息和内容(可选)
    print(f"分组键:{group_key}")
    print(group_df)
    print("-" * 50)

# 方式2:存入字典,可通过分组键快速查找
grouped_dict = dict(list(grouped))
# 示例:获取指定分组的DataFrame
bike_buy_df = grouped_dict[('1/1/2023', 'Bike', 'Buy')]

输出效果

运行上述代码后,每个分组会输出如下格式的DataFrame(与你期望的结果一致):

分组键:('1/1/2023', 'Bike', 'Buy')
   ID      Date Product Type  Cost  Quantity
0   1  1/1/2023    Bike  Buy  10.0         1
1   2  1/1/2023    Bike  Buy  10.0         1
--------------------------------------------------
分组键:('1/1/2023', 'Bike', 'Sell')
   ID      Date Product  Type  Cost  Quantity
2   3  1/1/2023    Bike  Sell  10.0         1
3   4  1/1/2023    Bike  Sell  10.0         1
--------------------------------------------------
分组键:('1/2/2023', 'Car', 'Sell')
   ID      Date Product  Type  Cost  Quantity
4   5  1/2/2023     Car  Sell  20.0         1
5   6  1/2/2023     Car  Sell  20.0         1
--------------------------------------------------
分组键:('1/3/2023', 'Truck', 'Buy')
   ID      Date Product Type  Cost  Quantity
6   7  1/3/2023   Truck  Buy  30.0         1
7   8  1/3/2023   Truck  Buy  30.0         1
--------------------------------------------------

内容的提问来源于stack exchange,提问作者iBeMeltin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:53:17