我有2个数据帧。
几次数据操作后的第一个数据帧如下
Date
1/2/2019
1/3/2019
1/4/2019
1/5/2019
1/6/2019
1/7/2019
1/8/2019
1/9/2019
第二个数据框是从Google表格获得的范围,看起来像这样
DATA UCL
0.005 0.015
0.005 0.015
0.005 0.015
0.005 0.015
0.005 0.015
0.005 0.015
0.005 0.015
0.005 0.015
我如何结合这两个变量以形成可以传递的单个数据帧。
看起来像这样
Date DATA UCL
1/2/2019 0.005 0.015
1/3/2019 0.005 0.015
1/4/2019 0.005 0.015
1/5/2019 0.005 0.015
1/6/2019 0.005 0.015
1/7/2019 0.005 0.015
1/8/2019 0.005 0.015
1/9/2019 0.005 0.015
这是当前代码
var Bvals = sheet.getRange("B12:B").getValues();
var Blast = Bvals.filter(String).length;
var daterange = sheet.getRange(firstrow, 1, Blast, 1);
var Dateconverted = Utilities.formatDate(daterange, "GMT", ""EEE MMM dd yyyy");
range = sheet.getRange(firstrow, 2, Blast, 3);
var datarange2 = range.getValues();
Dateconverted是第一个数据帧,datarange2是具有2列的第二个数据帧。我希望将这2个数据帧合并为Var Data3 = {将这2个数据表合并为一个数据表的一些代码}
答案 0 :(得分:0)
范围基本上是一个二维数组,其工作方式类似于valueOfCellInRange = range[rowIndex][columnIndex]
,因此要“扩展”每一行以包括来自不同范围的两行的值,您应该能够执行以下操作:
var newRangeValues = [];
for (var i = 0; i < dataRange1.length; i++){
// Length of the outer array will be the number of rows to loop through
// (assumes the two source ranges have an equal number of rows)
var combinedRow = dataRange1[i].concat(dataRange2[i]);
// dataRange1[i] will hold a one-item array like ["Date"]
// dataRange2[i] will hold an array like ["DATA","UCL"]
// concat() will merge them into one array
newRangeValues.push(combinedRow);
}
myTargetRangeOnSheet.setValues(newRangeValues);
注意:我尚未在Google表格中测试此代码,但它应该与您要尝试的代码非常接近。 (而且您可以检出此explanation of the concat method中的数组。)
它在代码段中只是为了表明它在浏览器中有效:
const dataRange1 = [
["Date"],
["1/1/19"]
];
const dataRange2 = [
["DATA", "UCL"],
["DATA thing", "UCL thing"]
];
const newRangeValues = [];
for (let i = 0; i < dataRange1.length; i++){
const combinedRow = dataRange1[i].concat(dataRange2[i]);
newRangeValues.push(combinedRow);
}
console.log(newRangeValues);