您好,我有一个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
答案 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