MCPcopy Index your code
hub / github.com/javascriptdata/danfojs / processColumn

Function processColumn

src/danfojs-base/transformers/concat.ts:26–65  ·  view source on GitHub ↗

* * @param dfList Array * @param axis number * @returns DataFrame

(dfList: Array<DataFrame | Series>, axis: number )

Source from the content-addressed store, hash-verified

24 * @returns DataFrame
25 */
26function processColumn(dfList: Array<DataFrame | Series>, axis: number ): DataFrame {
27 let allDf: any = {}
28 let dublicateColumns: any = {}
29 let maxLen = 0
30 for(let i=0; i < dfList.length; i++) {
31 let df = dfList[i]
32 let columnData: ArrayType2D;
33 if ( df instanceof DataFrame) {
34 columnData = df.getColumnData as ArrayType2D
35 } else {
36 columnData = [df.values] as ArrayType2D
37 }
38 let columns = df.columns
39 for(let j=0; j < columns.length; j++) {
40 let column = columns[j]
41 let colData: ArrayType1D = columnData[j]
42 if (colData.length > maxLen) {
43 maxLen = colData.length
44 }
45 if (!(column in allDf)) {
46 allDf[column] = colData
47 dublicateColumns[column] = 0
48 } else {
49 dublicateColumns[column] +=1
50 column += dublicateColumns[column]
51 allDf[column] = colData
52 }
53 }
54 }
55 Object.keys(allDf).forEach(value => {
56 let colLength = allDf[value].length
57 if (colLength < maxLen) {
58 let residualLen = maxLen - colLength
59 let nanList = new Array(residualLen).fill(NaN)
60 allDf[value].push(...nanList)
61 }
62 })
63
64 return new DataFrame(allDf)
65}
66
67/**
68 * Concat data along rows

Callers 1

concatFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected