Skip to content

Commit e0eec27

Browse files
authored
Merge pull request #1 from NeonSpork/diff-port
Diff port into working branch for pct_change
2 parents 8d77e14 + 63b46e8 commit e0eec27

1 file changed

Lines changed: 16 additions & 36 deletions

File tree

src/danfojs-base/core/frame.ts

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1515,52 +1515,32 @@ export default class DataFrame extends NDframe implements DataFrameInterface {
15151515
return this;
15161516
}
15171517

1518-
if (typeof other === "number" && axis === 1) {
1519-
const orig_tensor = this.tensor.clone();
1520-
let unit = [NaN];
1521-
for (let i = 1; i < orig_tensor.shape[orig_tensor.rank - 1]; i++) {
1522-
unit.push(NaN);
1518+
if (typeof other === "number") {
1519+
let origDF = this.copy() as DataFrame;
1520+
if (axis === 0) {
1521+
origDF = origDF.T;
15231522
}
1524-
let diff_array: any[] = orig_tensor.arraySync();
1523+
const originalTensor = origDF.tensor.clone();
1524+
const unit = new Array(originalTensor.shape[originalTensor.rank - 1]).fill(NaN);
1525+
let diffArray: any[] = originalTensor.arraySync();
15251526
if (other > 0) {
15261527
for (let i = 0; i < other; i++) {
1527-
diff_array.unshift(unit);
1528-
diff_array.pop();
1528+
diffArray.unshift(unit);
1529+
diffArray.pop();
15291530
}
15301531
}
15311532
else if (other < 0) {
15321533
for (let i = 0; i > other; i--) {
1533-
diff_array.push(unit);
1534-
diff_array.shift();
1535-
}
1536-
}
1537-
const diff_tensor = tensorflow.tensor2d(diff_array, orig_tensor.shape);
1538-
return this.$MathOps([orig_tensor, diff_tensor], "sub", inplace);
1539-
}
1540-
1541-
if (typeof other === "number" && axis === 0) {
1542-
const orig_df = new DataFrame(this.tensor.clone());
1543-
const orig_tensor = orig_df.T.tensor.clone();
1544-
let unit = [NaN];
1545-
for (let i = 1; i < orig_tensor.shape[orig_tensor.rank - 1]; i++) {
1546-
unit.push(NaN);
1547-
}
1548-
let diff_array: any[] = orig_tensor.arraySync();
1549-
if (other > 0) {
1550-
for (let i = 0; i < other; i++) {
1551-
diff_array.unshift(unit);
1552-
diff_array.pop();
1534+
diffArray.push(unit);
1535+
diffArray.shift();
15531536
}
15541537
}
1555-
else if (other < 0) {
1556-
for (let i = 0; i > other; i--) {
1557-
diff_array.push(unit);
1558-
diff_array.shift();
1559-
}
1538+
const diffTensor = tensorflow.tensor2d(diffArray, originalTensor.shape);
1539+
const diffDF = this.$MathOps([originalTensor, diffTensor], "sub", inplace) as DataFrame;
1540+
if (axis === 0) {
1541+
return diffDF.T;
15601542
}
1561-
const diff_tensor = tensorflow.tensor2d(diff_array, orig_tensor.shape);
1562-
const diff_df = this.$MathOps([orig_tensor, diff_tensor], "sub", inplace) as DataFrame;
1563-
return diff_df.T;
1543+
return diffDF;
15641544
}
15651545

15661546
if (other instanceof DataFrame || other instanceof Series) {

0 commit comments

Comments
 (0)