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

Python股票绘图错误排查:股价收益率计算与可视化问题求助

问题排查:股票数据处理与绘图错误分析

以下是针对你代码可能存在的问题及解决方法:

1. 缺失必要库导入

代码中使用了pd(pandas)和plt(matplotlib.pyplot)但未提前导入,运行时会触发NameError。需在代码最顶部添加:

import pandas as pd
import matplotlib.pyplot as plt

2. 文件路径错误

如果stock_prices.csv不在当前脚本的工作目录下,pd.read_csv会抛出FileNotFoundError。解决方式:

  • 确认文件与脚本放在同一文件夹;
  • 或者使用文件绝对路径,例如:
    stock_prices = pd.read_csv('/Users/xxx/Documents/stock_prices.csv', parse_dates=['Date'], index_col='Date')
    

3. 数据格式/缺失值问题

若stock_prices的首尾行存在非数值类型数据、缺失值(NaN),会导致收益率计算失败:

  • 先添加代码检查首尾行数据:
    print("\n首尾行数据:")
    print(stock_prices.iloc[[0, -1]])
    
  • 若有缺失值,可删除含缺失值的列:stock_prices = stock_prices.dropna(axis=1),或根据需求用fillna()填充。

修正后的完整代码

# 导入必要库
import pandas as pd
import matplotlib.pyplot as plt

# 导入数据并查看信息
stock_prices = pd.read_csv('stock_prices.csv', parse_dates=['Date'], index_col='Date')
print(stock_prices.info())

# 检查首尾行数据(用于排查问题)
print("\n首尾行数据:")
print(stock_prices.iloc[[0, -1]])

# 计算收益率
price_return = stock_prices.iloc[-1].div(stock_prices.iloc[0]).sub(1).mul(100)
price_return.sort_values(inplace=True)

# 绘制水平条形图
price_return.plot.barh(title='Stock Price Returns')
plt.show()

内容的提问来源于stack exchange,提问作者Marlon Brando

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:24:26