Skip to content

Commit

Permalink
Update datatable.go
Browse files Browse the repository at this point in the history
  • Loading branch information
TimLai666 committed Sep 19, 2024
1 parent 3da5771 commit c58b82c
Showing 1 changed file with 16 additions and 17 deletions.
33 changes: 16 additions & 17 deletions datatable.go
Original file line number Diff line number Diff line change
Expand Up @@ -478,10 +478,7 @@ func (dt *DataTable) SetColumnToRowNames(columnIndex string) *DataTable {

dt.DropColumnsByIndex(columnIndex)

dt.columnIndex = make(map[string]int)
for i, _ := range dt.columns {
dt.columnIndex[generateColumnIndex(i)] = i
}
dt.regenerateColumnIndex()

go dt.updateTimestamp()
return dt
Expand Down Expand Up @@ -739,6 +736,7 @@ func (dt *DataTable) DropColumnsByName(columnNames ...string) {
}
}
}
dt.regenerateColumnIndex()
}

// DropColumnsByIndex drops columns by their index names.
Expand All @@ -762,6 +760,8 @@ func (dt *DataTable) DropColumnsByIndex(columnIndices ...string) {
}
}
}

dt.regenerateColumnIndex()
}

// DropColumnsByNumber drops columns by their number.
Expand All @@ -781,6 +781,8 @@ func (dt *DataTable) DropColumnsByNumber(columnIndices ...int) {
delete(dt.columnIndex, generateColumnIndex(index))
}
}

dt.regenerateColumnIndex()
}

// DropColumnsContainStringElements drops columns that contain string elements.
Expand Down Expand Up @@ -813,11 +815,7 @@ func (dt *DataTable) DropColumnsContainStringElements() {
delete(dt.columnIndex, generateColumnIndex(colIndex))
}

// 更新 columnIndex 映射,以反映列被刪除後的變化
for i, _ := range dt.columns {
newColName := generateColumnIndex(i)
dt.columnIndex[newColName] = i
}
dt.regenerateColumnIndex()

go dt.updateTimestamp()
}
Expand Down Expand Up @@ -853,10 +851,7 @@ func (dt *DataTable) DropColumnsContainNumbers() {
delete(dt.columnIndex, generateColumnIndex(colIndex))
}

for i, _ := range dt.columns {
newColName := generateColumnIndex(i)
dt.columnIndex[newColName] = i
}
dt.regenerateColumnIndex()

go dt.updateTimestamp()
}
Expand Down Expand Up @@ -889,10 +884,7 @@ func (dt *DataTable) DropColumnsContainNil() {
delete(dt.columnIndex, generateColumnIndex(colIndex))
}

for i, _ := range dt.columns {
newColName := generateColumnIndex(i)
dt.columnIndex[newColName] = i
}
dt.regenerateColumnIndex()

go dt.updateTimestamp()
}
Expand Down Expand Up @@ -1408,6 +1400,13 @@ func (dt *DataTable) getMaxColumnLength() int {
return maxLength
}

func (dt *DataTable) regenerateColumnIndex() {
dt.columnIndex = make(map[string]int)
for i, _ := range dt.columns {
dt.columnIndex[generateColumnIndex(i)] = i
}
}

func generateColumnIndex(index int) string {
name := ""
for index >= 0 {
Expand Down

0 comments on commit c58b82c

Please sign in to comment.