以更有效的方式合并来自Pandas groupby的数据框?

时间:2019-07-20 11:53:16

标签: python pandas merge group-by outer-join

我有一个初始数据框,可以使用Pandas groupby方法从中创建新的数据框。存储在熊猫Locale中的数据框应全部与另一个称为DataFrameGroupBy object的数据框合并(外部联接)。为此,我创建了一个用户定义函数(df_to_merge)并使用insertWeekYear将此函数应用于熊猫apply

DataFrameGroupBy object

运行此代码后,我将有一个数据帧# User defined merge function def insertWeekYear(group): inserted_group = pd.merge(group,df_to_merge, how = 'outer', on = ['year', 'week']) return inserted_group # Create Grouped_object and merge the dataframes Grouped_object = df.groupby(['Store', 'Product']) New_df = Grouped_object.apply(insertWeekYear) ,其中包含存储的所有数据帧New_df与数据帧Grouped_object合并在一起。

这正是我打算做的。但是,由于df_to_merge包含大约74000个数据帧,因此它需要74000个外部联接才能将所有数据帧“重新组合”在一起。为了估计所需的时间,我对包含1000个数据帧的子集的分组对象Grouped_object进行了上述操作。基于此,至少需要大约8-9个小时。

  1. 我可以有效且正确地将熊猫Grouped_objectgroupby结合使用吗?如果没有,如何使这项工作更有效?
  2. 您能想到一种更快的方法吗?

其他上下文:我想将applyweek的每个组合(存储时)中的每个yeardf_to_merge作为一行存储在Store中在原始Product中并在df中分组)。因此,由于Grouped_object包含年和周的64个组合,并且df_to_merge中的每个数据框都包含<64,因此每个合并的数据框的长度将为64。基本上,每个合并的数据框将仅获得附加行。 Grouped_objectweek的组合,但尚未存储在year中的原始数据帧中。

0 个答案:

没有答案