将分组序列与数据框合并

时间:2019-09-18 12:36:39

标签: python pandas

您好,我有一个groupby系列,我想与一个Dataframe合并,以便根据groupby的值而不是零来替换Dataframe中的product和time列。知道怎么做吗?以下是系列和数据框示例

原始groupby系列

Product       time           
Product1      2017-01-14 00:45:00       1
              2017-01-14 12:30:00       3
Product2      2017-01-14 00:45:00       7
              2017-01-14 12:30:00       3

原始数据框

time                   Product1 Product2    
2017-01-14 12:30:00      0       0
2017-01-14 00:45:00      0       0

我想将两者结合起来

time                   Product1 Product2    
2017-01-14 12:30:00      3       3
2017-01-14 00:45:00      1       7

1 个答案:

答案 0 :(得分:0)

您应该先将系列拆开(在这里我称之为s

s.unstack(0)

给出:

Product              Product1  Product2
time                                   
2017-01-14 00:45:00         1         7
2017-01-14 12:30:00         3         3

离您的要求不远。

如果您要遵守原始数据框的顺序和列名,则此衬板可以完成此工作:

df.merge(s.rename(None).unstack(0),
         left_on='time', right_index=True, suffixes=('_x', ''))[df.columns]

给予预期:

                  time  Product1  Product2
0  2017-01-14 12:30:00         3         3
1  2017-01-14 00:45:00         1         7