熊猫:用不同的时间合并数据

时间:2014-04-15 08:16:10

标签: python pandas

我有两个数据框,包含不同范围的时间序列数据。一个人提前开始,并提前结束。此外,一个是每月一个,一个是季度。但是,两者的指数均为YYYY-MM-DD。有没有一种使用“Python”和“Pandas”合并这些数据帧的可爱方式?

谢谢!

/编辑 一套:

          DATE    GDP  GPDI     NFLS
0   1947-01-01  243.1  35.9  112.815
1   1947-04-01  246.3  34.5  111.253
2   1947-07-01  250.1  34.9  113.023
3   1947-10-01  260.3  43.2  111.440

另一个:

           DATE   INDPRO  M08354USM310NNBR  GDP
(...)
334  1946-11-01  13.3916               NaN  NaN
335  1946-12-01  13.4721               NaN  NaN
336  1947-01-01  13.6332              42.8  NaN
337  1947-02-01  13.7137              42.5  NaN

我想和他们一起加入,等等

      DATE INDPRO  M08354USM310NNBR  GDP   GPDI     NFLS
1946-11-01 13.3916              NaN  NaN    NaN     NaN  
1946-12-01 13.4712              NaN  NaN    NaN     NaN
1947-01-01 13.6332             42.8  243.1 35.9     112.815           
1947-02-01 13.7137             42.5  NaN    NaN     NaN
(...)

1 个答案:

答案 0 :(得分:1)

只是执行一个合并事实,这些时期是不同的,并且实际上不重叠适合你:

merged = df1.merge(df2, on='DATE', how='outer')

merged
Out[54]:
         DATE  GDP_x  GPDI     NFLS   INDPRO  M08354USM310NNBR  GDP_y
0  1947-01-01  243.1  35.9  112.815  13.6332              42.8    NaN
1  1947-04-01  246.3  34.5  111.253      NaN               NaN    NaN
2  1947-07-01  250.1  34.9  113.023      NaN               NaN    NaN
3  1947-10-01  260.3  43.2  111.440      NaN               NaN    NaN
4  1946-11-01    NaN   NaN      NaN  13.3916               NaN    NaN
5  1946-12-01    NaN   NaN      NaN  13.4721               NaN    NaN
6  1947-02-01    NaN   NaN      NaN  13.7137              42.5    NaN

[7 rows x 7 columns]

您可以重命名,填写,删除错误的“GDP_y”列

要对合并的'DATE'列进行排序,只需致电sort

In [57]:

merged.sort(['DATE'])
Out[57]:
         DATE  GDP_x  GPDI     NFLS   INDPRO  M08354USM310NNBR  GDP_y
4  1946-11-01    NaN   NaN      NaN  13.3916               NaN    NaN
5  1946-12-01    NaN   NaN      NaN  13.4721               NaN    NaN
0  1947-01-01  243.1  35.9  112.815  13.6332              42.8    NaN
6  1947-02-01    NaN   NaN      NaN  13.7137              42.5    NaN
1  1947-04-01  246.3  34.5  111.253      NaN               NaN    NaN
2  1947-07-01  250.1  34.9  113.023      NaN               NaN    NaN
3  1947-10-01  260.3  43.2  111.440      NaN               NaN    NaN

[7 rows x 7 columns]