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

加载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')  # 转为数值,无效值设为NaN
    
    若为常规小数点格式,直接转换:
    df['你的列名'] = 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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:42:10