Python 3.x 基于排序列值将数据帧划分为子集

Python 3.x 基于排序列值将数据帧划分为子集,python-3.x,pandas,data-science,Python 3.x,Pandas,Data Science,我有一个dataframe,列如下 [“事件发生时间”、“供应商技术”、“事件结束”] 我有按供应商字母顺序排列的数据框。我想拆分这个大数据帧。根据vendor\u tech 我尝试了许多解决方案,但在StackOverflow上似乎找不到类似的解决方案。我尝试过许多低效且复杂的解决方案,但都没有成功 我的主要问题是,当我使用.itertuple()并迭代对象时,我无法将这些对象添加到另一个数据帧中 # try this df time_of_incident vendo

我有一个dataframe,列如下

[“事件发生时间”、“供应商技术”、“事件结束”]

我有按供应商字母顺序排列的数据框。我想拆分这个大数据帧。根据
vendor\u tech

我尝试了许多解决方案,但在StackOverflow上似乎找不到类似的解决方案。我尝试过许多低效且复杂的解决方案,但都没有成功

我的主要问题是,当我使用
.itertuple()
并迭代对象时,我无法将这些对象添加到另一个数据帧中

# try this

df
     time_of_incident       vendor_tech Incident_closed
0   1970-04-05 17:23:44.460 a           yes
1   1994-11-25 17:23:44.460 a           no
2   1980-02-12 17:23:44.460 a           no
3   1978-06-22 17:23:44.460 b           yes
4   1990-10-17 17:23:44.460 b           yes
5   1960-05-27 17:23:44.460 b           yes
6   1980-02-12 17:23:44.460 c           no
按“供应商技术”对数据进行分组 创建数据帧字典 调用每个数据帧(根据“供应商技术”将其视为唯一) 如果需要,可以将每个df保存到不同的文件中

split={name:df表示名称,df在您的大数据框中。groupby(“供应商技术”)}
您能给数据框或文件提供一个小的工作示例吗?我想您可以创建一个列,将数据分类到任意多个存储桶中,而不是使用group by,即[group for name,group in df.groupby('column to split the df by')],然后运行一个循环到新数据帧的结果。@CJR工作得很好
mini_df = [(name,group) for name,group in df.groupby('vendor_tech')]
mini_list = list(df['vendor_tech'].unique())
mini_dict ={}
for i in range(len(mini_df)):
    label = mini_list.pop(0)
    mini_dict['df_'+str(label)] = pd.DataFrame(mini_df[i][1], columns=df.columns)
df_a
time_of_incident            vendor_tech Incident_closed
0   1970-04-05 17:23:44.460 a           yes
1   1994-11-25 17:23:44.460 a           no
2   1980-02-12 17:23:44.460 a           no

df_b
    time_of_incident        vendor_tech Incident_closed
3   1978-06-22 17:23:44.460 b           yes
4   1990-10-17 17:23:44.460 b           yes
5   1960-05-27 17:23:44.460 b           yes