Skip to content

Commit 578b7ac

Browse files
committed
fix inplace bug in rename
1 parent 7aefeca commit 578b7ac

2 files changed

Lines changed: 23 additions & 3 deletions

File tree

danfojs/src/core/frame.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2021,12 +2021,14 @@ export class DataFrame extends Ndframe {
20212021
if (!utils.__key_in_object(kwargs, "mapper")) {
20222022
throw Error("Please specify a mapper object")
20232023
}
2024-
2024+
this.print()
2025+
console.log(kwargs['axis']);
2026+
console.log(kwargs['inplace']);
20252027
if (kwargs['axis'] == 1) {
20262028
//columns
20272029
let old_col_names = Object.keys(kwargs['mapper'])
20282030
let new_col_names = Object.values(kwargs['mapper'])
2029-
let col_names = this.column_names
2031+
let col_names = [...this.column_names]
20302032

20312033

20322034
old_col_names.forEach((cname, i) => {
@@ -2037,13 +2039,19 @@ export class DataFrame extends Ndframe {
20372039
col_names[idx] = new_col_names[i]
20382040

20392041
})
2042+
console.log("Before rename");
2043+
this.print()
20402044
if (kwargs['inplace']) {
20412045
this.columns = col_names
20422046
this.__set_col_property(this, this.col_data, col_names, old_col_names)
2047+
console.log("after rename inplace");
2048+
this.print()
20432049
} else {
20442050
let df = this.copy()
20452051
df.columns = col_names
2046-
this.__set_col_property(df, df.col_data, col_names, old_col_names)
2052+
df.__set_col_property(df, df.col_data, col_names, old_col_names)
2053+
console.log("after rename not inplace");
2054+
df.print()
20472055
return df
20482056
}
20492057
} else {

danfojs/tests/core/frame.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1945,6 +1945,18 @@ describe("DataFrame", function () {
19451945
let res = ["a1", "b1", "C", "D"]
19461946
assert.deepEqual(df.columns, res)
19471947

1948+
})
1949+
it("confirms original column name is not modified along axis 1", function () {
1950+
let data = { "A": [-20, 30, 47.3, -20],
1951+
"B": [34, -4, 5, 6] ,
1952+
"C": [20, 20, 30, 30] ,
1953+
"D": ["a", "b", "c", "c"] }
1954+
1955+
let ndframe = new DataFrame(data)
1956+
let df = ndframe.rename({ mapper: { "A": "a1", "B": "b1" } })
1957+
let res = ["A", "B", "C", "D"]
1958+
assert.deepEqual(ndframe.columns, res)
1959+
19481960
})
19491961
it("Rename columns along axis 1 inplace", function () {
19501962
let data = { "A": [-20, 30, 47.3, -20] ,

0 commit comments

Comments
 (0)