File tree Expand file tree Collapse file tree 4 files changed +55
-0
lines changed
Expand file tree Collapse file tree 4 files changed +55
-0
lines changed Original file line number Diff line number Diff line change @@ -2043,8 +2043,10 @@ export default class DataFrame extends NDframe {
20432043 }
20442044
20452045 if ( axis === 1 ) {
2046+ const colsAdded = [ ] ;
20462047 const newColumns = this . columns . map ( ( col ) => {
20472048 if ( mapper [ col ] !== undefined ) {
2049+ colsAdded . push ( mapper [ col ] ) ;
20482050 return mapper [ col ] ;
20492051 } else {
20502052 return col ;
@@ -2053,6 +2055,9 @@ export default class DataFrame extends NDframe {
20532055
20542056 if ( inplace ) {
20552057 this . $setColumnNames ( newColumns ) ;
2058+ for ( const col of colsAdded ) {
2059+ this . $setInternalColumnDataProperty ( col ) ;
2060+ }
20562061 } else {
20572062 return new DataFrame ( [ ...this . values ] , {
20582063 index : [ ...this . index ] ,
Original file line number Diff line number Diff line change @@ -2020,6 +2020,29 @@ describe("DataFrame", function () {
20202020 assert . deepEqual ( df . index , res ) ;
20212021
20222022 } ) ;
2023+
2024+ it ( "Get new column via subseting works after rename (inplace)" , function ( ) {
2025+ let data = {
2026+ "A" : [ - 20 , 30 , 47.3 ] ,
2027+ "B" : [ 34 , - 4 , 5 ] ,
2028+ "C" : [ 20 , 2 , 30 ]
2029+ } ;
2030+ let df = new dfd . DataFrame ( data ) ;
2031+ df . rename ( { mapper : { "A" : "new_name" } , inplace : true } ) ;
2032+ df [ "new_name" ] . print ( ) ;
2033+ assert . deepEqual ( df [ "new_name" ] . values , data [ "A" ] ) ;
2034+ } ) ;
2035+
2036+ it ( "Get new column via subseting works after rename (not-inplace)" , function ( ) {
2037+ let data = {
2038+ "A" : [ - 20 , 30 , 47.3 ] ,
2039+ "B" : [ 34 , - 4 , 5 ] ,
2040+ "C" : [ 20 , 2 , 30 ]
2041+ } ;
2042+ let df = new dfd . DataFrame ( data ) ;
2043+ let new_df = df . rename ( { mapper : { "A" : "new_name" } } ) ;
2044+ assert . deepEqual ( new_df [ "new_name" ] . values , data [ "A" ] ) ;
2045+ } ) ;
20232046 } ) ;
20242047
20252048 describe ( "sort_index" , function ( ) {
Original file line number Diff line number Diff line change @@ -2045,8 +2045,10 @@ export default class DataFrame extends NDframe {
20452045 }
20462046
20472047 if ( axis === 1 ) {
2048+ const colsAdded = [ ] ;
20482049 const newColumns = this . columns . map ( ( col ) => {
20492050 if ( mapper [ col ] !== undefined ) {
2051+ colsAdded . push ( mapper [ col ] ) ;
20502052 return mapper [ col ] ;
20512053 } else {
20522054 return col ;
@@ -2055,6 +2057,9 @@ export default class DataFrame extends NDframe {
20552057
20562058 if ( inplace ) {
20572059 this . $setColumnNames ( newColumns ) ;
2060+ for ( const col of colsAdded ) {
2061+ this . $setInternalColumnDataProperty ( col ) ;
2062+ }
20582063 } else {
20592064 return new DataFrame ( [ ...this . values ] , {
20602065 index : [ ...this . index ] ,
Original file line number Diff line number Diff line change @@ -2052,6 +2052,28 @@ describe("DataFrame", function () {
20522052 assert . deepEqual ( df . index , res ) ;
20532053
20542054 } ) ;
2055+ it ( "Get new column via subseting works after rename (inplace)" , function ( ) {
2056+ let data = {
2057+ "A" : [ - 20 , 30 , 47.3 ] ,
2058+ "B" : [ 34 , - 4 , 5 ] ,
2059+ "C" : [ 20 , 2 , 30 ]
2060+ } ;
2061+ let df = new DataFrame ( data ) ;
2062+ df . rename ( { mapper : { "A" : "new_name" } , inplace : true } ) ;
2063+ df [ "new_name" ] . print ( ) ;
2064+ assert . deepEqual ( df [ "new_name" ] . values , data [ "A" ] ) ;
2065+ } ) ;
2066+
2067+ it ( "Get new column via subseting works after rename (not-inplace)" , function ( ) {
2068+ let data = {
2069+ "A" : [ - 20 , 30 , 47.3 ] ,
2070+ "B" : [ 34 , - 4 , 5 ] ,
2071+ "C" : [ 20 , 2 , 30 ]
2072+ } ;
2073+ let df = new DataFrame ( data ) ;
2074+ let new_df = df . rename ( { mapper : { "A" : "new_name" } } ) ;
2075+ assert . deepEqual ( new_df [ "new_name" ] . values , data [ "A" ] ) ;
2076+ } ) ;
20552077 } ) ;
20562078
20572079 describe ( "sort_index" , function ( ) {
You can’t perform that action at this time.
0 commit comments