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

Python 如何合并不共享一个公共索引的两个数据帧?,python,python-2.7,pandas,Python,Python 2.7,Pandas,以下是第一个数据帧: 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.023

以下是第一个数据帧:

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
这是第二个数据帧,我想加入第一个基于月份的数据帧,即使它必须重复诸如read_year=2018和read_month=3这样的值。如果是2019年,读取月份是3,我希望它表示读取月份3的相同值


清楚我的要求吗?

也许试试这个。只需在两列上合并一个外部。像全外
DataFrame1.mergeDataFrame2,左边是'read'u month',右边是'read'u month',how'outer'

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

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

不是100%清楚。如果你能举一个例子来说明你正在寻找的数据帧是什么样子的,那会很有帮助。你写的对吗?你在里面放了两个月。
                                    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