建议使用CodeBuddy生成Python数据清洗脚本:先删除空行以及包含非数字字段的记录,再把毫秒级时间戳转换为“YYYY-MM-DD HH:MM:SS”标准日期时间格式,按时间升序排序,最后导出带有_clean后缀的CSV文件;后续还可以继续追加分钟级平均值聚合,便于物联网传感器数据分析与建模。

你需要将从Arduino、ESP32或STM32采集到的原始传感器数据(例如温湿度、加速度、光照强度)快速完成数据清洗、时间戳对齐、统计指标计算,并导出为CSV文件用于后续数据分析或机器学习建模,而不是手动编写Python脚本逐行处理,既耗时又容易出错。
准备传感器原始数据文件
首先确认数据文件为纯文本格式:每行对应一条记录,字段之间使用英文逗号或制表符分隔,第一行放置列名,例如timestamp,temperature,humidity,pressure。如果没有列名,CodeBuddy在生成Python清洗脚本时很可能会误判字段类型;如果文件中存在中文乱码或BOM头,后续解析时也很容易直接报错。
将文件保存为UTF-8编码,扩展名必须是.csv或.txt。尽量不要使用Excel另存为“CSV UTF-8”,因为它可能会悄悄插入不可见字符;更稳妥的方式是用VS Code打开文件→点击右下角编码选项→选择“Sa ve with Encoding”→再选择UTF-8。
把文件拖入VS Code编辑器标签页,确认内容能够正常显示,没有出现方块、乱码或问号。
用CodeBuddy生成数据清洗脚本
先在 VS Code 中打开 CodeBuddy 侧边栏,然后直接输入这段提示词:“我有一份物联网传感器CSV数据,含timestamp(毫秒级Unix时间戳)、temperature(浮点数)、humidity(整数)、pressure(浮点数),要求:1. 删除所有空行和含非数字temperature/humidity/pressure的行;2. 将timestamp转为可读的'YYYY-MM-DD HH:MM:SS'格式;3. 按timestamp升序排列;4. 输出清洗后CSV到同目录下,文件名加_clean后缀。”
点击“生成代码”后,CodeBuddy通常会返回一个完整的Python脚本,常见做法是使用pandas读取CSV,并结合dropna、pd.to_datetime等方法进行数据清洗与时间格式转换。注意检查生成代码中是否包含df = df.dropna(subset=['temperature', 'humidity', 'pressure'])——这是非常关键的过滤逻辑,缺少这一步会导致无效数据或空值残留在最终结果中。
复制生成的脚本,在VS Code中新建文件,粘贴后保存为clean_sensor.py,并与原始CSV数据文件放在同一个文件夹中,便于直接运行。
运行脚本并验证结果
打开VS Code内置终端(Ctrl+`),切换到该文件夹目录后,执行:python clean_sensor.py。
如果报错ModuleNotFoundError: No module named 'pandas',说明本地Python环境尚未安装pandas库:请在终端运行pip install pandas后再重新执行。这一步不能省略,否则Python数据清洗脚本无法正常运行。
成功运行后,检查当前目录下是否生成了your_data_clean.csv。可以直接用VS Code打开并确认:第一行仍然是原始列名;timestamp列已经转换为类似2026-08-07 03:22:15的标准时间格式;所有temperature值为小数,humidity为整数,同时不存在空行、异常符号或明显格式错误。
再用Excel或WPS双击打开该CSV文件,观察前10行数据是否时间连续、数值范围是否合理。如果发现某行temperature为-999,或者humidity超过100,说明原始传感器数据中存在异常值,需要返回上一步,在CodeBuddy提示词中追加:“对temperature< -50或>80、humidity<0或>100的行也删除”。
提取分钟级统计指标
方法一:修改已有脚本
在clean_sensor.py末尾添加以下代码:
df['timestamp'] = pd.to_datetime(df['timestamp'])
df_min = df.set_index('timestamp').resample('1T').agg({'temperature': 'mean', 'humidity': 'mean', 'pressure': 'mean'}).reset_index()
df_min.to_csv('your_data_minute_stats.csv', index=False)
方法二:让CodeBuddy重新生成脚本
在CodeBuddy中输入:“基于刚才清洗后的数据,按分钟聚合,计算每分钟temperature、humidity、pressure的平均值,保留timestamp列为聚合起始时间,输出为CSV”。
执行新的脚本后,会生成your_data_minute_stats.csv。打开文件检查:timestamp列应为每分钟整点时间(例如03:22:00、03:23:00),并且相邻两行之间应间隔60秒,这样才说明分钟级聚合结果正确。
【注意】resample('1T')中的'T'表示minute,不是'Timezone',如果写成'1m'会直接报错。
