加载CSV生成时间序列DataFrame后无法使用pct_change及绘图求助
解决方案
- 检查数据类型
先执行print(df.dtypes)查看目标时间序列列的类型。如果显示为object(字符串类型),这就是无法调用数值方法和绘图的核心原因——pct_change()与绘图函数仅支持数值型数据。 - 转换为数值类型
根据你的CSV格式处理字符串并转换:
若为常规小数点格式,直接转换:# 针对千位分隔符为点、小数点为逗号的格式(比如欧洲式数值) df['你的列名'] = df['你的列名'].str.replace('.', '', regex=False) # 移除千位分隔符 df['你的列名'] = df['你的列名'].str.replace(',', '.', regex=False) # 替换小数点符号 df['你的列名'] = pd.to_numeric(df['你的列名'], errors='coerce') # 转为数值,无效值设为NaNdf['你的列名'] = pd.to_numeric(df['你的列名'], errors='coerce') - 清理缺失值
转换后可能产生NaN,需处理以保证数据连续:df = df.dropna(subset=['你的列名']) # 删除含缺失值的行 # 或用前向填充:df['你的列名'] = df['你的列名'].fillna(method='ffill') - 验证功能
再次执行print(df.dtypes)确认列类型为float64/int64,随后测试:# 测试pct_change df['涨跌幅'] = df['你的列名'].pct_change() print(df['涨跌幅'].head()) # 测试绘图 import matplotlib.pyplot as plt df['你的列名'].plot(title='时间序列走势') plt.show()
内容的提问来源于stack exchange,提问作者Nocturnal
相关产品推荐
相关产品推荐

