You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas合并两个日期DataFrame绘图时曲线不衔接如何解决?

绘图异常结果

问题原因

  • extend.set_index('Date') 未接收返回值:Pandas的set_index方法默认不会修改原DataFrame,执行后extend的索引仍然是默认的整数0、1,绘图时x轴会直接使用整数索引,无法和stock的日期索引匹配对齐。
  • 日期格式不统一:你定义extend时Date列为字符串类型,而stock的索引是datetime64类型,即使设置了索引也无法正常识别为连续的时间轴。

修复方案

修改extend的创建和索引设置逻辑即可,完整可运行代码如下:

import pandas_datareader as web
import pandas as pd
import matplotlib.pyplot as plt

stock = web.DataReader('MMM', data_source="yahoo", start='2021-01-01', end='2021-11-12')
stock = stock.filter(["Adj Close"])
# 先将日期转为datetime格式,再设置为索引并覆盖原extend对象
extend = pd.DataFrame({'Date': ["2021-11-15", "2021-11-16"], 'Adj Close': [170, 171]})
extend['Date'] = pd.to_datetime(extend['Date'])
extend = extend.set_index('Date')

plt.figure(figsize=(16, 8))
plt.plot(stock["Adj Close"])
plt.plot(extend["Adj Close"])
plt.show()

你也可以选择将两个DataFrame拼接后一次性绘图,效果一致:

full_data = pd.concat([stock, extend])
plt.figure(figsize=(16, 8))
plt.plot(full_data["Adj Close"])
plt.show()

内容的提问来源于stack exchange,提问作者Martin Kunze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:06:04