如何合并不共享一个公用索引的两个数据框?

时间:2018-07-11 19:25:44

标签: python python-2.7 pandas

这是第一个DataFrame:

In: df.head()
Out:
                                      avg_lmp  avg_load
read_year read_month trading_block                     
2017      3          0              24.606666  0.018033
                     1              32.090800  0.023771
          4          0              25.136200  0.017487
                     1              33.487529  0.023570
          5          0              24.085170  0.018008

这是我要基于月份加入的第一个DataFrame(即使它必须重复诸如read_year = 2018read_month = 3之类的值。如果是2019和{{ 1}}是3,我希望它对read_month 3说相同的值。

read_month

很清楚我要什么吗?

2 个答案:

答案 0 :(得分:1)

您似乎有共同的索引。设置它们,然后加入:

df = df.reset_index().set_index(['read_month', 'trading_block']).join(df2)

,如果您愿意的话:

df.reset_index().set_index(['read year', 'read_month', 'trading_block'])

不确定这是否是您要的吗

                                    index    avg_lmp  avg_load        fpc
read_year read_month trading_block                                       
2017      3          0                  0  24.606666  0.018033  28.348427
                     1                  1  32.090800  0.023771  35.900000
          4          0                  2  25.136200  0.017487  26.250870
                     1                  3  33.487529  0.023570  34.150000
          5          0                  4  24.085170  0.018008  23.599388

答案 1 :(得分:0)

也许尝试一下。只需合并两个外部列即可。 (如完整的外部)     DataFrame1.merge(DataFrame2,left_on ='read_month',right_on ='read_month',how ='outer')