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

基于动态NAME列拆分DataFrame为多个独立DataFrame或列表的求助

解决按NAME列拆分DataFrame为多个独立DataFrame的问题

嘿,这个问题其实用pandas的groupby就能轻松搞定!你之前可能没注意到,groupby返回的对象是可以迭代的,每次迭代会给出分组名称和对应的子DataFrame,刚好满足你的需求。

核心实现步骤

  1. 对原DataFrame按NAME列分组
  2. 将分组结果转换为字典(键是NAME的取值,值是对应子DataFrame),或者直接迭代分组来处理每个子DataFrame

代码示例

假设你的原DataFrame名为df,代码如下:

import pandas as pd

# 1. 按NAME列分组
grouped_df = df.groupby('NAME')

# 2. 转换为字典,方便快速访问每个子DataFrame
df_groups = {group_name: group_data for group_name, group_data in grouped_df}

如何访问拆分后的DataFrame

现在你可以通过字典的键直接获取对应分组的DataFrame:

  • 获取S N对应的DataFrame:df_groups['S N']
  • 获取H H对应的DataFrame:df_groups['H H']
  • 其他分组比如O S、L S同理

如果想把每个子DataFrame单独赋值给变量,也很简单:

df_sn = df_groups['S N']
df_hh = df_groups['H H']
df_os = df_groups['O S']
df_ls = df_groups['L S']
df_dl = df_groups['D L']

遍历所有分组(可选)

如果需要批量处理每个子DataFrame,可以直接遍历grouped_df对象:

for group_name, group_data in grouped_df:
    print(f"=== DataFrame for {group_name} ===")
    print(group_data)
    print("\n")

这样就能得到你期望的多个独立DataFrame,每个只包含NAME列相同值的行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 16:32:25