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

使用pandas向CSV文件写入数据时如何设置列名

解决方法

追加写入CSV时仅首次写入(文件不存在时)输出表头,后续追加数据跳过表头即可实现完整带列名的CSV文件。你现有代码未设置列名,同时强制关闭了header输出,因此无法生成列名。

修改步骤

  • 导入os模块用于判断目标CSV文件是否已存在
  • 自定义对应列名,你的数据按顺序共5列:时间戳、开盘价(o)、收盘价(c)、最高价(h)、最低价(l),列名可按需调整
  • 写入前判断文件是否存在,动态调整header参数
  • 创建DataFrame时指定列名,可选添加index=False避免写入无用的索引列

修改后代码

import os
import json
import datetime as dt
import pandas as pd

def on_message(ws, message):
    print('Otrzymano wiadomość')
    print(message)
    json_message = json.loads(message)#Decoding json
    price_data = [json_message["data"]["o"]]
    price_data.append(json_message["data"]["c"])
    price_data.append(json_message["data"]["h"])
    price_data.append(json_message["data"]["l"])
    time_stamp = dt.datetime.now()
    time_stamp = time_stamp.strftime('%Y-%m-%d %H:%M:%S')
    col = [time_stamp]
    col.extend(price_data)
    df = pd.DataFrame(col).T
    # 自定义列名
    df.columns = ['时间戳', '开盘价', '收盘价', '最高价', '最低价']
    filename = str(time_stamp[0:11]) + 'stockdata.csv'
    # 判断文件是否存在,动态设置header参数
    write_header = not os.path.exists(filename)
    # 写入CSV,index=False取消索引列,不需要可以删除该参数
    df.to_csv(filename, mode='a', header=write_header, index=False)
    print(df)

内容的提问来源于stack exchange,提问作者Dominik Pucuła

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 20:21:02