【问题标题】:Merge data frames based on date根据日期合并数据框
【发布时间】:2020-06-30 00:26:43
【问题描述】:

我想合并 2 个数据框。

第一个数据框看起来像:

Date    Value
1968-04-01  38.0
1968-04-02  37.6
1968-04-03  37.7
1968-04-04  36.7
1968-04-05  37.2
1968-04-08  37.0
1968-04-09  37.25
1968-04-10  37.6

第二个数据框看起来像:

1991-06-21  4.44
1991-06-22  4.39
1991-06-24  4.39
1991-06-25  4.37
1991-06-26  4.41
1991-06-27  4.36

这两个数据集都更新到了今天。

我如何创建一个新的数据框来启动 1991 年的数据,因为那是第二个数据集的开始位置?每个价格都有一个列。

我试过了:

df_all_rows = pd.concat([df1, df2])

但这只是将一组数据置于另一组之下。

我猜目前数据还没有到今天。但是我怎样才能创建一个只有两个系列都有日期的新数据框?

这是我所拥有的:

import numpy as np
import pandas as pd
import pickle
import quandl
from datetime import datetime

df1=quandl.get("BUNDESBANK/BBK01_WT5511", authtoken="6F92X3NEV8DdrhAc_d5_")
df2=quandl.get("PERTH/SLVR_USD_D", authtoken="6F92X3NEV8DdrhAc_d5_")
df2=df2.dropna()

T1 = pd.merge(df1, df2, on=df1.index, how='inner')

【问题讨论】:

  • 有具体问题吗?请参阅How to Askhelp center
  • 我想我问了上面的问题,不知道你的意思。
  • 您概述了目标或目的,而不是具体的问题或障碍。
  • 您想要两个数据帧中的所有数据还是只想要日期相同的数据?
  • 只有那些日期相同的

标签: python dataframe merge concat


【解决方案1】:

尝试:

import pandas as pd
merge=pd.merge(df1,df2, how='inner', left_index=True, right_index=True)

您可以使用how 参数更改合并方式。有关加入here的更多信息,请参阅

【讨论】:

  • 我试过这个,将 T1 和 T2 更改为 df1 和 df2 使其与我所拥有的匹配,它给了我错误: KeyError: DatetimeIndex(['1968-04-01', '1968- 04-02'、'1968-04-03'、'1968-04-04'、'1968-04-05'、'1968-04-08'、'1968-04-09'、'1968-04- 10', '1968-04-11', '1968-04-16', ... '2016-04-05', '2016-04-06', '2016-04-07', '2016-04 -08'、'2016-04-11'、'2016-04-12'、'2016-04-13'、'2016-04-14'、'2016-04-15'、'2016-04-18 '], dtype='datetime64[ns]', name='Date', length=12152, freq=None)
  • hm,尝试在合并中设置两个索引:merge=pd.merge(df1,df2, how='inner', left_index=True, right_index=True)
  • 我会试试这个,我只是将我的代码添加到问题中,这样你就可以看到发生了什么
猜你喜欢
  • 2015-09-28
  • 2021-10-05
  • 2018-11-14
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 1970-01-01
  • 2014-08-22
相关资源
最近更新 更多