i would find the keys for means, then use them to loop through to create the data arrays
e.g.
[{"id":"6c1ddc2ef2fdc716","type":"inject","z":"da8a6ef0b3c9a5c8","name":"data","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"time\":1504029632890,\"mean\":2,\"mean_1\":6,\"mean_2\":3},{\"time\":1504022335690,\"mean\":2,\"mean_1\":6,\"mean_2\":3},{\"time\":1504022335690,\"mean\":2,\"mean_1\":6,\"mean_2\":3}]","payloadType":"json","x":170,"y":880,"wires":[["535b6ab94712f30a"]]},{"id":"535b6ab94712f30a","type":"function","z":"da8a6ef0b3c9a5c8","name":"function 20","func":"const series = Object.keys(msg.payload[0]) ?? [];\nseries.splice(series.indexOf(\"time\"),1);\nconst data = [];\nseries.forEach((prop, index) =>{\n data[index] = [];\n msg.payload.forEach(obj => {\n data[index].push({x: obj.time, y: obj[prop]})\n })\n})\nmsg.payload = [\n {\n series: series,\n data: data,\n labels: series\n }\n]\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":880,"wires":[["7462b8b0fcd05535"]]},{"id":"7462b8b0fcd05535","type":"debug","z":"da8a6ef0b3c9a5c8","name":"debug 115","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":490,"y":880,"wires":[]}]
function
const series = Object.keys(msg.payload[0]) ?? [];
series.splice(series.indexOf("time"),1);
const data = [];
series.forEach((prop, index) =>{
data[index] = [];
msg.payload.forEach(obj => {
data[index].push({x: obj.time, y: obj[prop]})
})
})
msg.payload = [
{
series: series,
data: data,
labels: series
}
]
return msg;
[edit] fixed typo's