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

土壤湿度传感器CSV数据处理:timestamp转日期+按sensor ID拆分工作表

实现方案

依赖pandas做数据处理、openpyxl做Excel多工作表写入,提前通过pip install pandas openpyxl安装依赖即可。

完整代码示例

import pandas as pd
import json

# ---------- 可选:如果还未完成JSON列拆分,先执行这部分逻辑 ----------
# 读取原始CSV文件,替换为你的文件路径
raw_df = pd.read_csv("raw_sensor_data.csv")
# 假设存储传感器上报JSON的列名为report_data,替换为你的实际列名
json_parsed = raw_df["report_data"].apply(lambda x: pd.Series(json.loads(x)))
# 拼接原数据和解析后的JSON字段
processed_df = pd.concat([raw_df, json_parsed], axis=1)

# ------------------- 功能1:timestamp转标准日期时间 -------------------
# 假设时间戳列名为timestamp,秒级时间戳用unit="s",毫秒级改为unit="ms"
processed_df["standard_datetime"] = pd.to_datetime(processed_df["timestamp"], unit="s").dt.strftime("%Y-%m-%d %H:%M:%S")
# 若后续需要做时间维度计算,可去掉.dt.strftime,直接保留datetime64类型即可

# ------------------- 功能2:按sensor ID生成独立工作表 -------------------
# 假设传感器ID列名为sensor_id,替换为你的实际列名
sensor_groups = processed_df.groupby("sensor_id")

# 写入多工作表Excel,替换为你的输出路径
with pd.ExcelWriter("sensor_output.xlsx", engine="openpyxl") as writer:
    for sensor_id, group_data in sensor_groups:
        # 处理工作表名:Excel限制工作表名最多31字符,禁止包含/ \ ? * [ ]
        sheet_name = f"sensor_{sensor_id}".replace("/", "").replace("\\", "").replace("?", "").replace("*", "").replace("[", "").replace("]", "")[:30]
        group_data.to_excel(writer, sheet_name=sheet_name, index=False)

注意事项

  • 若你的时间戳是13位毫秒级,修改pd.to_datetime的unit参数为"ms"即可正确转换
  • 若传感器ID包含特殊字符,上述代码已做自动清洗,避免写入Excel时报错
  • 你可以根据需求调整strftime的格式,比如只保留日期可以改成"%Y-%m-%d"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:27:04