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

如何将InfluxDB时序数据库返回的多表格字典转换为统一DataFrame

将InfluxDB字典转换为指定结构的DataFrame

我来帮你搞定这个数据格式转换的需求!从你描述的字典结构来看,我们可以用Python的pandas库轻松实现这个转换,核心思路是把每个KEY对应的表格数据拆分成单独的行,再统一拼接成目标格式的DataFrame。

步骤说明

假设你从InfluxDB获取的字典结构如下(我调整成更易处理的列表格式,如果你拿到的是字符串,先转成列表即可):

data_dict = {
    "KEY1": ["MAX", "MIN", "Date1", 100, 10, "Date2", 90, 5],
    "KEY2": ["MAX", "MIN", "Date1", 80, 15, "Date2", 75, 8]
}

我们需要把每个KEY下的日期和对应的MAX/MIN值拆分成单独的行,最终生成包含KEYS、DATES、MAX、MIN四列的DataFrame。

完整代码实现

import pandas as pd

def convert_influx_dict_to_df(data_dict):
    # 初始化空列表用来存储所有行数据
    rows = []
    
    for key, values in data_dict.items():
        # 从索引2开始,每3个元素为一组:Date, max_val, min_val
        for i in range(2, len(values), 3):
            date = values[i]
            max_val = values[i+1]
            min_val = values[i+2]
            # 把当前行数据加入列表
            rows.append({
                "KEYS": key,
                "DATES": date,
                "MAX": max_val,
                "MIN": min_val
            })
    
    # 把列表转换成DataFrame
    df = pd.DataFrame(rows)
    return df

# 测试示例
data_dict = {
    "KEY1": ["MAX", "MIN", "Date1", 100, 10, "Date2", 90, 5],
    "KEY2": ["MAX", "MIN", "Date1", 80, 15, "Date2", 75, 8]
}

result_df = convert_influx_dict_to_df(data_dict)
print(result_df)

输出结果

运行代码后,你会得到如下结构的DataFrame:

KEYS  DATES  MAX  MIN
0  KEY1  Date1  100   10
1  KEY1  Date2   90    5
2  KEY2  Date1   80   15
3  KEY2  Date2   75    8

特殊情况处理

如果你的原始字典中每个KEY对应的是字符串格式的数据集(比如"MAX MIN Date1 max1 min1 Date2 max2 min2"),可以先把字符串按空格分割成列表,再做数值类型转换后传入函数:

# 处理字符串格式的value
data_dict_str = {
    "KEY1": "MAX MIN Date1 100 10 Date2 90 5",
    "KEY2": "MAX MIN Date1 80 15 Date2 75 8"
}
# 转换为列表格式
data_dict = {k: v.split() for k, v in data_dict_str.items()}
# 将max/min字符串转为数值类型
for k, v in data_dict.items():
    for i in range(3, len(v), 2):
        v[i] = float(v[i])
        v[i+1] = float(v[i+1])
# 调用转换函数
result_df = convert_influx_dict_to_df(data_dict)

这样就能完美匹配你想要的DataFrame格式啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:29:03