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

机器学习KNN分类器场景下,CSV列表字符串转整数的问题

嘿,我完全懂你这个痛点!之前做Arduino传感器数据喂给ML模型的时候,也踩过串行数据转类型+CSV存储的坑。咱们一步步拆解问题:

首先,你说代码编译没报错但CSV打开异常,大概率是写入CSV的格式不对——你是不是直接把Python列表(比如[520,521,...]这种带方括号的字符串)直接写进文件了?这样CSV软件会把整个列表当成一个单元格,自然显示异常。另外也可能是字符串转整数时没清理脏数据,导致隐藏问题。

先解决核心问题:正确把整数数据写入CSV

别直接写列表的字符串形式,用Python的csv模块来处理,它会帮你生成标准的逗号分隔格式:

import csv

# 假设你已经从串口拿到了字符串列表,比如string_list = ['520','521','156','179','191']
# 第一步:把字符串转成整数,同时清理可能的空白字符(比如串口传过来的换行、空格)
try:
    int_data = [int(s.strip()) for s in string_list]
except ValueError as e:
    print(f"注意:有无效数据无法转成整数,错误信息:{e}")
    # 这里可以选择跳过这条数据,或者记录日志

# 第二步:用csv.writer写入文件,确保每一行是标准的CSV列
# 如果是追加数据用'a',如果是新建文件用'w',记得加newline=''避免换行混乱
with open('your_data.csv', 'a', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(int_data)  # 这会把整数列表写成逗号分隔的一行:520,521,156,179,191

额外避坑提示

  • 串口数据清理:Arduino发送数据时,可能会带换行符\n或回车符\r,接收后一定要用.strip()去掉,不然字符串是'520\n',虽然转int没问题,但写入时可能导致CSV换行异常。
  • 异常处理:串行传输偶尔会丢包或乱码,比如收到'52a'这种非数字字符串,直接转int会崩溃,所以一定要加try-except捕获,避免程序挂掉。
  • 文件打开模式:用'a'追加数据时,不要忘了newline='',不然Windows系统下会自动多插空行,导致CSV显示异常。

完整的串口读取+转换+写入示例

给你一个能直接用的流程代码,适配你的场景:

import serial
import csv

# 初始化串口(替换成你的端口号和波特率)
ser = serial.Serial('COM3', 9600, timeout=1)

# 先创建CSV文件并写表头(如果需要的话)
with open('sensor_data.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['传感器1', '传感器2', '传感器3', '传感器4', '传感器5'])

print("开始接收数据...")
while True:
    # 读取串口一行数据,解码成字符串并清理空白
    raw_data = ser.readline().decode('utf-8').strip()
    if raw_data:
        # 按逗号分割成单个数据字符串
        string_list = raw_data.split(',')
        # 转换为整数
        try:
            int_data = [int(s.strip()) for s in string_list]
            # 写入CSV
            with open('sensor_data.csv', 'a', newline='') as f:
                writer = csv.writer(f)
                writer.writerow(int_data)
            print(f"已保存数据:{int_data}")
        except ValueError:
            print(f"跳过无效数据:{raw_data}")

这样处理后,你打开CSV文件应该就是整整齐齐的列数据了,KNN分类器直接读整数就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:13:02