我有一个初始数据框,可以使用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个小时。
Grouped_object
与groupby
结合使用吗?如果没有,如何使这项工作更有效?其他上下文:我想将apply
和week
的每个组合(存储时)中的每个year
和df_to_merge
作为一行存储在Store
中在原始Product
中并在df
中分组)。因此,由于Grouped_object
包含年和周的64个组合,并且df_to_merge
中的每个数据框都包含<64,因此每个合并的数据框的长度将为64。基本上,每个合并的数据框将仅获得附加行。 Grouped_object
和week
的组合,但尚未存储在year
中的原始数据帧中。