我想要合并2个数据帧,但它们不共享索引
第一个具有以下结构:
date mail_volume
2011-01-01 100
2011-02-01 150
2011-03-01 125
...
第二个是使用分位数函数创建的:
df.quantile([.25,.50,.75])
并具有以下结构:
mail_volume
0.25 110
0.50 120
0.75 130
我想创建一个具有以下结构的第三个数据框,其中每个月重复分位数结果以及原始结果:
date mail_volume metric_type
2011-01-01 100 result
2011-01-01 110 .25
2011-01-01 120 .50
2011-01-01 130 .75
2011-02-01 150 result
2011-02-01 110 .25
2011-02-01 120 .50
2011-02-01 130 .75
我已搜索过追加并向数据框插入行,但由于需要重复日期并添加metric_type列,因此无法解决我的问题。
提前致谢, 埃里克
答案 0 :(得分:0)
让我们进行笛卡尔合并并与原始数据框连接:
pd.concat([df.assign(metric_type='result'),
df.assign(key=1).merge(df2.reset_index().assign(key=1), on='key', suffixes=('_x',''))[['date','mail_volume','index']].rename(columns={'index':'metric_type'})])\
.sort_values(by='date')
输出:
date mail_volume metric_type
0 2011-01-01 100 result
0 2011-01-01 110 0.25
1 2011-01-01 120 0.5
2 2011-01-01 130 0.75
1 2011-02-01 150 result
3 2011-02-01 110 0.25
4 2011-02-01 120 0.5
5 2011-02-01 130 0.75
2 2011-03-01 125 result
6 2011-03-01 110 0.25
7 2011-03-01 120 0.5
8 2011-03-01 130 0.75