Python 如何从合并列生成key:value数组

Python 如何从合并列生成key:value数组,python,pandas,Python,Pandas,需要创建一个新列,该列将合并所有月份列,并将其值显示为键值对数组 我已经能够合并这些列: df["Consumo"] = df.iloc[:,[4,5,6,7,8,9,10,11,12,13,14,15]].values.tolist() 我只是不确定如何首先映射这些值,以便排列键值数组 当然,我可以遍历每一列,然后遍历每一行,但要想保留这些值,然后将其放入数组中,需要花费一定的时间。。。 我想了一些类似的事情,我可以保留这个巨大的阵列,然后将其推入df[“Consumo”

需要创建一个新列,该列将合并所有月份列,并将其值显示为键值对数组

我已经能够合并这些列:

df["Consumo"] = df.iloc[:,[4,5,6,7,8,9,10,11,12,13,14,15]].values.tolist()
我只是不确定如何首先映射这些值,以便排列键值数组

当然,我可以遍历每一列,然后遍历每一行,但要想保留这些值,然后将其放入数组中,需要花费一定的时间。。。 我想了一些类似的事情,我可以保留这个巨大的阵列,然后将其推入df[“Consumo”],这样行吗

输入数据:

Cód. Perfil Sigla Nome Empresarial ... 2020-10-01 00:00:00 2020-11-01 00:00:00 2020-12-01 00:00:00 ...
3    RGE SUL RGE SUL DISTRIBUIDORA DE ENERGIA S.A. ... 230357.542859 284340.749249 337758.293447 ...
预期产出:

Cód. Perfil Sigla Nome Empresarial Patamar Consumo
3    RGE SUL RGE SUL DISTRIBUIDORA DE ENERGIA S.A.LEVE  [2020-10-01 00:00:00: 375637.681828, 2020-10-01 00:00:00: 350523.989792, 2020-10-01 00:00:00: 314549.742607, ...

也许有一种更优雅的方式,但这一种对我很有效:

for col in df.iloc[:,[4,5,6,7,8,9,10,11,12,13,14,15]]:
    i = df.columns.get_loc(col)
    for j, row_value in df[col].iteritems():
        if i == 4:
            series.append([{col:row_value}])
        else:
            series[j].append({col:row_value})

df["Consumo"] = series
你可以,和一个dict映射

使用一个简化的示例:

将熊猫作为pd导入
df=pd.DataFrame({
'Perfil':['SUL','ABC'],'Sigla':['RGE','XYZ'],'Name':['SUL','ABC'],
'2020-10-01 00:00:00': [230357.542859, 372356.997901],
'2020-11-01 00:00:00': [284340.749249, 455408.113981],
'2020-12-01 00:00:00': [337758.293447, 698728.068559],
})
侧影日报 西格拉 名称 2020-10-01 00:00:00 2020-11-01 00:00:00 2020-12-01 00:00:00 0 南部 RGE 南部 230357.542859 284340.749249 337758.293447 1. 基础知识 XYZ 基础知识 372356.997901 455408.113981 698728.068559 尝试:

df[“Consumo”]=df.iloc[:,[4,5,6,7,8,9,10,11,12,13,14,15]。记录
df[“Consumo”]=df[“Consumo”].map(str).str[1:-1]
to_dict
是这里的关键:(您只需要选择正确的输出方向
dict

然后第二行就是去掉括号