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
相关产品推荐
相关产品推荐

