是否可以将系列对象连接到数据框而无需将系列转换为数据框?
目前,我计算一些东西,得到一个系列作为结果,并且必须将系列变成一个数据框来合并这两个:
clicked_series = p.clicked.sum();
temp_df = pd.DataFrame({'ad_id':clicked_series.index, 'clicks':clicked_series.values})
full_df = pd.merge(full_df, temp_df, on='ad_id', how='left')
是否可以直接在系列和数据框上进行左外连接,而无需创建临时数据框?
答案 0 :(得分:4)
使用reindex
full_df['clicks'] = clicked_series.reindex(full_df.ad_id).values
旧答案
使用join
从技术上讲,我仍然转换为pd.DataFrame
,但......
clicked_series = p.clicked.sum();
full_df = full_df.join(clicked_series.to_frame('clicks'), on='ad_id', how='left')
另一种选择是使用pd.concat
。但这看起来像是外连接。
pd.concat([full_df.set_index('ad_id'),
clicked_series.rename('clicks')], axis=1).reset_index()