gpt4 book ai didi

python - Pandas :合并不同时间的数据

转载 作者:太空宇宙 更新时间:2023-11-04 06:04:22 24 4
gpt4 key购买 nike

我有两个数据框,它们包含不同范围的时间序列数据。一个开始得早,结束得早。另外,一个是每月一次,一个是每季度一次。但是两者的索引都是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
(...)

最佳答案

只需执行合并,因为期间不同且不重叠的事实实际上适合您:

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]

关于python - Pandas :合并不同时间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23078087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com