本文介绍了子选择一个多索引 pandas 数据框以创建多个子集(使用字典)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个类似于以下内容的数据集:

I have a dataset similar to the following:

df_lenght = 240
df = pd.DataFrame(np.random.randn(df_lenght,2), columns=['a','b'] )
df['datetime'] = pd.date_range('23/06/2017', periods=df_lenght, freq='H')
unique_jobs = ['job1','job2','job3',]
job_id = [unique_jobs for i in range (1, int((df_lenght/len(unique_jobs))+1) ,1) ]
df['job_id'] = sorted( [val for sublist in job_id for val in sublist] )
df.set_index(['job_id','datetime'], append=True, inplace=True)

print(df[:5])返回:

                                     a         b
  job_id datetime
0 job1   2017-06-23 00:00:00 -0.067011 -0.516382
1 job1   2017-06-23 01:00:00 -0.174199  0.068693
2 job1   2017-06-23 02:00:00 -1.227568 -0.103878
3 job1   2017-06-23 03:00:00 -0.847565 -0.345161
4 job1   2017-06-23 04:00:00  0.028852  3.111738

如何创建多个dataframes,每个job_id值一个?那些输入字典的内容是否易于检索?谢谢

How can I create multiple dataframes, one for each value of job_id? Can those fed into a dictionary to be easy retrieved?Thanks

推荐答案

您可以将groupby对象解压缩成字典:

You could unpack a groupby object into a dictionary:

dfs = {job: df for job, df in df.groupby(level='job_id')}

这篇关于子选择一个多索引 pandas 数据框以创建多个子集(使用字典)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 10:42
查看更多