根据已排序的列值将数据帧分为子集

时间:2019-07-17 21:30:29

标签: python-3.x pandas data-science

我有一个数据框,各列如下

['time_of_incident', 'vendor_tech', 'incident_closed']

我有按vendor_tech字母顺序排序的数据框。我想分割这个大数据框。根据{{​​1}}

中的值,进入多个数据框的大约18,000个条目的大小

我尝试了许多解决方案,但似乎在StackOverflow上找不到这样的东西。我已经尝试了许多效率低下且令人费解的解决方案,但是没有运气。

我的主要问题是,当我使用vendor_tech并遍历对象时,无法将这些对象添加到另一个DataFrame中

1 个答案:

答案 0 :(得分:-1)

# 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

通过“供应商技术”对数据进行分组

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

您可以根据需要将每个df保存到一个不同的文件中

enter image description here