为了账号安全,请及时绑定邮箱和手机立即绑定

使用熊猫加入两个时间序列

使用熊猫加入两个时间序列

四季花海 2022-12-06 15:04:11
我有两个时间序列。两个系列都有相同的列。他们有一些共同的日期。两个系列的其中一列是 Close,代表收盘价。我想加入这些收盘价。我使用了以下代码。但它在最后一行产生错误。dow=pd.read_csv("dow.csv",index_col="Date")sensex=pd.read_csv("sensex.csv",index_col="Date")dow_close=dow["Close"]sensex_close=sensex["Close"]dow_close.index=pd.to_datetime(dow_close.index)sensex_close.index=pd.to_datetime(sensex_close.index)dow_sensex_close=dow_close.join(sensex_close,how='inner')
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

主要问题是您的子设置方法。使用 .loc 函数进行子设置。您将获得新的数据框作为数据框而不是系列。然后使用 .join 函数以及 ls 和 rs 后缀。


dow=pd.read_csv("dow.csv",index_col="Date")

sensex=pd.read_csv("sensex.csv",index_col="Date")

dow_close=dow.loc[:,["Close"]]

sensex_close=sensex.loc[:,["Close"]]

dow_close.index=pd.to_datetime(dow_close.index)

sensex_close.index=pd.to_datetime(sensex_close.index)

dow_sensex_close = dow_close.join(sensex_close,how='inner',lsuffix='_dow', rsuffix='_sensex')

dow_sensex_close.head()


查看完整回答
反对 回复 2022-12-06
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

当您调用join时,其他对象可以是Series,但 self对象必须只是一个DataFrame。


所以第一个更正是运行:


dow_close.to_frame().join(sensex_close, ...)

但这还不够,因为您有重叠的列。为避免另一个异常(列重叠但未指定后缀),您必须至少指定lsuffix和rsuffix 之一。


我的建议是指定它们:


dow_sensex_close = dow_close.to_frame().join(sensex_close,

    how='inner', lsuffix='_dow', rsuffix='_sensex')


查看完整回答
反对 回复 2022-12-06
  • 2 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信